Think Java is a hands-on introduction to computer science and programming used by many universities and high schools around the world. Its conciseness, emphasis on vocabulary, and informal tone make it particularly appealing for readers with little or no experience. The book starts with the most basic programming concepts and gradually works its way to advanced object-oriented techniques.
In this fully updated and expanded edition, authors Allen Downey and Chris Mayfield introduce programming as a means for solving interesting problems. Each chapter presents material for one week of a college course and includes exercises to help you practice what you’ve learned. Along the way, you’ll see nearly every topic required for the AP Computer Science A exam and Java SE Programmer I certification.
- Discover one concept at a time: tackle complex topics in a series of small steps with multiple examples
- Understand how to formulate problems, think creatively about solutions, and develop, test, and debug programs
- Learn about input and output, decisions and loops, classes and methods, strings and arrays, recursion and polymorphism
- Determine which program development methods work best for you, and practice the important skill of debugging
Author(s): Allen B. Downey, Chris Mayfield
Edition: 2
Publisher: o'Reilly
Year: 2021
Language: English
Commentary: True PDF
Pages: 326
Tags: java, jdk, computer science, algorithm,
Table of Contents
Preface
Acknowledgments
CHAPTER 1 Computer Programming
What Is a Computer?
What Is Programming?
The Hello World Program
Compiling Java Programs
Displaying Two Messages
Formatting Source Code
Using Escape Sequences
What Is Computer Science?
Debugging Programs
Vocabulary
Exercises
CHAPTER 2 Variables and Operators
Declaring Variables
Assigning Variables
Memory Diagrams
Printing Variables
Arithmetic Operators
Floating-Point Numbers
Rounding Errors
Operators for Strings
Compiler Error Messages
Other Types of Errors
Vocabulary
Exercises
CHAPTER 3 Input and Output
The System Class
The Scanner Class
Language Elements
Literals and Constants
Formatting Output
Reading Error Messages
Type Cast Operators
Remainder Operator
Putting It All Together
The Scanner Bug
Vocabulary
Exercises
CHAPTER 4 Methods and Testing
Defining New Methods
Flow of Execution
Parameters and Arguments
Multiple Parameters
Stack Diagrams
Math Methods
Composition
Return Values
Incremental Development
Vocabulary
Exercises
CHAPTER 5 Conditionals and Logic
Relational Operators
The if-else Statement
Chaining and Nesting
The switch Statement
Logical Operators
De Morgan’s Laws
Boolean Variables
Boolean Methods
Validating Input
Example Program
Vocabulary
Exercises
CHAPTER 6 Loops and Strings
The while Statement
Increment and Decrement
The for Statement
Nested Loops
Characters
Which Loop to Use
String Iteration
The indexOf Method
Substrings
String Comparison
String Formatting
Vocabulary
Exercises
CHAPTER 7 Arrays and References
Creating Arrays
Accessing Elements
Displaying Arrays
Copying Arrays
Traversing Arrays
Generating Random Numbers
Building a Histogram
The Enhanced for Loop
Counting Characters
Vocabulary
Exercises
CHAPTER 8 Recursive Methods
Recursive Void Methods
Recursive Stack Diagrams
Value-Returning Methods
The Leap of Faith
Counting Up Recursively
Binary Number System
Recursive Binary Method
CodingBat Problems
Vocabulary
Exercises
CHAPTER 9 Immutable Objects
Primitives Versus Objects
The null Keyword
Strings Are Immutable
Wrapper Classes
Command-Line Arguments
Argument Validation
BigInteger Arithmetic
Incremental Design
More Generalization
Vocabulary
Exercises
CHAPTER 10 Mutable Objects
Point Objects
Objects as Parameters
Objects as Return Values
Rectangles Are Mutable
Aliasing Revisited
Java Library Source
Class Diagrams
Scope Revisited
Garbage Collection
Mutable Versus Immutable
StringBuilder Objects
Vocabulary
Exercises
CHAPTER 11 Designing Classes
The Time Class
Constructors
Value Constructors
Getters and Setters
Displaying Objects
The toString Method
The equals Method
Adding Times
Vocabulary
Exercises
CHAPTER 12 Arrays of Objects
Card Objects
Card toString
Class Variables
The compareTo Method
Cards Are Immutable
Arrays of Cards
Sequential Search
Binary Search
Tracing the Code
Vocabulary
Exercises
CHAPTER 13 Objects of Arrays
Decks of Cards
Shuffling Decks
Selection Sort
Merge Sort
Subdecks
Merging Decks
Adding Recursion
Static Context
Piles of Cards
Playing War
Vocabulary
Exercises
CHAPTER 14 Extending Classes
CardCollection
Inheritance
Dealing Cards
The Player Class
The Eights Class
Class Relationships
Vocabulary
Exercises
CHAPTER 15 Arrays of Arrays
Conway’s Game of Life
The Cell Class
Two-Dimensional Arrays
The GridCanvas Class
Other Grid Methods
Starting the Game
The Simulation Loop
Exception Handling
Counting Neighbors
Updating the Grid
Vocabulary
Exercises
CHAPTER 16 Reusing Classes
Langton’s Ant
Refactoring
Abstract Classes
UML Diagram
Vocabulary
Exercises
CHAPTER 17 Advanced Topics
Polygon Objects
Adding Color
Regular Polygons
More Constructors
An Initial Drawing
Blinking Polygons
Interfaces
Event Listeners
Timers
Vocabulary
Exercises
APPENDIX A Tools
Installing DrJava
DrJava Interactions
Command-Line Interface
Command-Line Testing
Running Checkstyle
Tracing with a Debugger
Testing with JUnit
Vocabulary
APPENDIX B Javadoc
Reading Documentation
Writing Documentation
Javadoc Tags
Example Source File
Vocabulary
APPENDIX C Graphics
Creating Graphics
Graphics Methods
Example Drawing
Vocabulary
Exercises
APPENDIX D Debugging
Compile-Time Errors
Run-Time Errors
Logic Errors
Index