zyVersion - Java Concepts: Late Objects (3e)

Table of Contents

1.1 Computer Programs
1.2 The Anatomy of a Computer
1.3 Computing and Society: Computers Are Everywhere
1.4 The Java Programming Language
1.5 Becoming Familiar with Your Programming Environment
1.6 Analyzing Your First Program
1.7 Errors
1.8 Problem Solving: Algorithm Design
1.9 How To: Describing an Algorithm with Pseudocode
1.10 Worked Example: Writing an Algorithm for Tiling a Floor
1.11 Chapter Summary
1.12 Review Exercises
1.13 Practice Exercises
1.14 Programming Projects

2.1 Variables
2.2 Special Topic: Numeric Types in Java
2.3 Special Topic: Big Numbers
2.4 Arithmetic
2.5 Special Topic: Avoiding Negative Remainders
2.6 Special Topic: Combining Assignment and Arithmetic
2.7 Computing and Society: The Pentium Floating-Point Bug
2.8 Input and Output
2.9 How To: Carrying out Computations
2.10 Worked Example: Computing the Cost of Stamps
2.11 Problem Solving: First Do It By Hand
2.12 Worked Example: Computing Travel Time
2.13 Strings
2.14 Special Topic: Instance Methods and Static Methods
2.15 Special Topic: Using Dialog Boxes for Input and Output
2.16 Computing and Society: International Alphabets and Unicode
2.17 Chapter Summary
2.18 Review Exercises
2.19 Practice Exercises
2.20 Programming Projects

3.1 The if Statement
3.2 Special Topic: The Conditional Operator
3.3 Comparing Numbers and Strings
3.4 Special Topic: Lexicographic Ordering of Strings
3.5 How To: Implementing an if Statement
3.6 Worked Example: Extracting the Middle
3.7 Computing and Society: The Denver Luggage Handling System
3.8 Multiple Alternatives
3.9 Special Topic: The switch Statement
3.10 Nested Branches
3.11 Special Topic: Enumeration Types
3.12 Problem Solving: Flowcharts
3.13 Problem Solving: Test Cases
3.14 Special Topic: Logging
3.15 Boolean Variables and Operators
3.16 Special Topic: Short-Circuit Evaluation of Boolean Operators
3.17 Special Topic: De Morgan’s Law
3.18 Application: Input Validation
3.19 Computing and Society: Artificial Intelligence
3.20 Chapter Summary
3.21 Review Exercises
3.22 Practice Exercises
3.23 Programming Projects

4.1 The while Loop
4.2 Computing and Society: The First Bug
4.3 Problem Solving: Hand-Tracing
4.4 The for Loop
4.5 The do Loop
4.6 Application: Processing Sentinel Values
4.7 Special Topic: The Loop-and-a-Half Problem and the break Statement
4.8 Special Topic: Redirection of Input and Output
4.9 Problem Solving: Storyboards
4.10 Common Loop Algorithms
4.11 How To: Writing a Loop
4.12 Worked Example: Credit Card Processing
4.13 Nested Loops
4.14 Worked Example: Manipulating the Pixels in an Image
4.15 Problem Solving: Solve a Simpler Problem First
4.16 Application: Random Numbers and Simulations
4.17 Special Topic: Drawing Graphical Shapes
4.18 Computing and Society: Digital Piracy
4.19 Chapter Summary
4.20 Review Exercises
4.21 Practice Exercises
4.22 Programming Projects

5.1 Methods as Black Boxes
5.2 Implementing Methods
5.3 Parameter Passing
5.4 Return Values
5.5 How To: Implementing a Method
5.6 Worked Example: Generating Random Passwords
5.7 Methods Without Return Values
5.8 Problem Solving: Reusable Methods
5.9 Computing and Society: Personal Computing
5.10 Problem Solving: Stepwise Refinement
5.11 Worked Example: Calculating a Course Grade
5.12 Variable Scope
5.13 Recursive Methods (Optional)
5.14 How To: Thinking Recursively
5.15 Chapter Summary
5.16 Review Exercises
5.17 Practice Exercises
5.18 Programming Projects

6.1 Arrays
6.2 Computing and Society: Computer Viruses
6.3 The Enhanced for Loop
6.4 Common Array Algorithms
6.5 Special Topic: Sorting with the Java Library
6.6 Special Topic: Binary Search
6.7 Using Arrays with Methods
6.8 Special Topic: Methods with a Variable Number of Parameters
6.9 Problem Solving: Adapting Algorithms
6.10 How To: Working with Arrays
6.11 Worked Example: Rolling the Dice
6.12 Problem Solving: Discovering Algorithms by Manipulating Physical Objects
6.13 Two-Dimensional Arrays
6.14 Special Topic: Two-Dimensional Arrays with Variable Row Lengths
6.15 Special Topic: Multidimensional Arrays
6.16 Worked Example: A World Population Table
6.17 Array Lists
6.18 Special Topic: The Diamond Syntax
6.19 Chapter Summary
6.20 Review Exercises
6.21 Practice Exercises
6.22 Programming Projects

7.1 Reading and Writing Text Files
7.2 Special Topic: Reading Web Pages
7.3 Special Topic: File Dialog Boxes
7.4 Special Topic: Reading and Writing Binary Data
7.5 Text Input and Output
7.6 Special Topic: Regular Expressions
7.7 Special Topic: Reading an Entire File
7.8 Command Line Arguments
7.9 How To: Processing Text Files
7.10 Worked Example: Analyzing Baby Names
7.11 Computing and Society: Encryption Algorithms
7.12 Exception Handling
7.13 Special Topic: Assertions
7.14 Special Topic: The try/finally Statement
7.15 Computing and Society: The Ariane Rocket Incident
7.16 Application: Handling Input Errors
7.17 Chapter Summary
7.18 Review Exercises
7.19 Practice Exercises
7.20 Programming Projects

8.1 Object-Oriented Programming
8.2 Implementing a Simple Class
8.3 Specifying the Public Interface of a Class
8.4 Special Topic: The javadoc Utility
8.5 Designing the Data Representation
8.6 Implementing Instance Methods
8.7 Constructors
8.8 Special Topic: Overloading
8.9 Testing a Class
8.10 How To: Implementing a Class
8.11 Worked Example: Implementing a Menu Class
8.12 Problem Solving: Tracing Objects
8.13 Computing and Society: Open Source and Free Software
8.14 Object References
8.15 Special Topic: Calling One Constructor from Another
8.16 Static Variables and Methods
8.17 Problem Solving: Patterns for Object Data
8.18 Computing and Society: Electronic Voting Machines
8.19 Packages
8.20 Special Topic: Package Access
8.21 How To: Programming with Packages
8.22 Chapter Summary
8.23 Review Exercises
8.24 Practice Exercises
8.25 Programming Projects

9.1 Inheritance Hierarchies
9.2 Implementing Subclasses
9.3 Overriding Methods
9.4 Special Topic: Calling the Superclass Constructor
9.5 Polymorphism
9.6 Special Topic: Dynamic Method Lookup and the Implicit Parameter
9.7 Special Topic: Abstract Classes
9.8 Special Topic: Final Methods and Classes
9.9 Special Topic: Protected Access
9.10 How To: Developing an Inheritance Hierarchy
9.11 Worked Example: Implementing an Employee Hierarchy for Payroll Processing
9.12 Object: The Cosmic Superclass
9.13 Special Topic: Inheritance and the toString Method
9.14 Special Topic: Inheritance and the equals Method
9.15 Interface Types
9.16 Special Topic: Constants in Interfaces
9.17 Special Topic: Generic Interface Types
9.18 Special Topic: Static Methods in Interfaces
9.19 Special Topic: Default Methods
9.20 Special Topic: Function Objects
9.21 Special Topic: Lambda Expressions
9.22 Worked Example: Investigating Number Sequences
9.23 Computing and Society: Who Controls the Internet?
9.24 Chapter Summary
9.25 Review Exercises
9.26 Practice Exercises
9.27 Programming Projects

10.1 Frame Windows
10.2 Special Topic: Adding the main Method to the Frame Class
10.3 Events and Event Handling
10.4 Special Topic: Local Inner Classes
10.5 Special Topic: Anonymous Inner Classes
10.6 Special Topic: Lambda Expressions for Event Handling
10.7 Processing Text Input
10.8 Creating Drawings
10.9 How To: Drawing Graphical Shapes
10.10 Worked Example: Coding a Bar Chart Creator
10.11 Chapter Summary
10.12 Review Exercises
10.13 Practice Exercises
10.14 Programming Projects

11.1 Layout Management
11.2 Choices
11.3 How To: Laying Out a User Interface
11.4 Worked Example: Programming a Working Calculator
11.5 Menus
11.6 Exploring the Swing Documentation
11.7 Using Timer Events for Animations
11.8 Mouse Events
11.9 Special Topic: Keyboard Events
11.10 Special Topic: Event Adapters
11.11 Worked Example: Adding Mouse and Keyboard Support to the Bar Chart Creator
11.12 Chapter Summary
11.13 Review Exercises
11.14 Practice Exercises
11.15 Programming Projects

12.1 Classes and Their Responsibilities
12.2 Relationships Between Classes
12.3 How To: Using CRC Cards and UML Diagrams in Program Design
12.4 Special Topic: Attributes and Methods in UML Diagrams
12.5 Special Topic: Multiplicities
12.6 Special Topic: Aggregation, Association, and Composition
12.7 Application: Printing an Invoice
12.8 Computing and Society: Databases and Privacy
12.9 Worked Example: Simulating an Automatic Teller Machine
12.10 Chapter Summary
12.11 Review Exercises
12.12 Practice Exercises
12.13 Programming Projects

13.1 Triangle Numbers
13.2 How To: Thinking Recursively
13.3 Worked Example: Finding Files
13.4 Recursive Helper Methods
13.5 The Efficiency of Recursion
13.6 Permutations
13.7 Computing and Society: The Limits of Computation
13.8 Mutual Recursion
13.9 Backtracking
13.10 Worked Example: Towers of Hanoi
13.11 Chapter Summary
13.12 Review Exercises
13.13 Practice Exercises
13.14 Programming Projects

14.1 Selection Sort
14.2 Profiling the Selection Sort Algorithm
14.3 Analyzing the Performance of the Selection Sort Algorithm
14.4 Special Topic: Oh, Omega, and Theta
14.5 Special Topic: Insertion Sort
14.6 Merge Sort
14.7 Analyzing the Merge Sort Algorithm
14.8 Special Topic: The Quicksort Algorithm
14.9 Searching
14.10 Computing and Society: The First Programmer
14.11 Problem Solving: Estimating the Running Time of an Algorithm
14.12 Sorting and Searching in the Java Library
14.13 Special Topic: The Comparator Interface
14.14 Special Topic: Comparators with Lambda Expressions
14.15 Worked Example: Enhancing the Insertion Sort Algorithm
14.16 Chapter Summary
14.17 Review Exercises
14.18 Practice Exercises
14.19 Programming Projects

15.1 An Overview of the Collections Framework
15.2 Linked Lists
15.3 Computing and Society: Standardization
15.4 Sets
15.5 Maps
15.6 Special Topic: Updating Map Entries
15.7 How To: Choosing a Collection
15.8 Worked Example: Word Frequency
15.9 Special Topic: Hash Functions
15.10 Stacks, Queues, and Priority Queues
15.11 Stack and Queue Applications
15.12 Worked Example: Simulating a Queue of Waiting Customers
15.13 Special Topic: Reverse Polish Notation
15.14 Chapter Summary
15.15 Review Exercises
15.16 Practice Exercises
15.17 Programming Projects

zyVersions are leading print titles converted and adapted to zyBooks’ interactive learning platform, allowing for a quick and easy transition to an engaging digital experience for instructors and students.

What You’ll Find In This zyVersion:

  • Trusted content, flexible platform – rearrange these Horstmann sections to match your syllabus or add your own content.
  • 24 Hour Technical Support available.
  • Offer your students tons of hands-on practice to emphasize comprehension, not

    • Over 60 code rearrangement (Parsons) problems provide a stepping stone to
    • Tracing exercises for code and algorithms
    • Code-writing exercises with a live compiler
  • Track your students’ engagement and struggles with the class analytics feature (beta).
  • Save time with autograded challenge activities and LMS integration.

See it in action with this animation:

Instructors: Interested in evaluating this zyVersion or Book for your class? Sign up for a Free Trial and check out the first chapter of any zyBook or zyVersion today!

Java Concepts, Late Objects, 3rd Edition offers comprehensive topical coverage, with varied examples and problems, application of the visual component of fluid mechanics, and strong focus on effective learning. The text enables the gradual development of confidence in problem solving. Each important concept is introduced in easy-to understand terms – anticipating where students may get confused – before more complicated examples are discussed.


Cay Horstmann, Ph.D.
Univ. Of Michigan-Ann Arbor