|
Textbook
Java For Everyone: Late Objects, 2nd EditionDecember 2011, ©2013
![]() |
Java For Everyone, 2nd Edition is a comprehensive introduction to Java and computer programming, which focuses on the principles of programming, software engineering, and effective learning. It is designed for a one-semester, mixed-major, first course in programming.
Nobody supports your desire to teach students good programming skills like Cay Horstmann. Active in both the classroom and the software industry, Horstmann knows that meticulous coding-not shortcuts-is the base upon which great programmers are made. Using an innovative visual design that leads students step-by-step through intricacies of Java programming, Java For Everyone, 2nd Edition instills confidence in beginning programmers and confidence leads to success.
1.1 Computer Programs
1.2 The Anatomy of a Computer
1.3 The Java Programming Language
1.4 Becoming Familiar with Your Programming Environment
1.5 Analyzing Your First Program
1.6 Errors
1.7 Problem Solving: Algorithm Design
Chapter 2 Fundamental Data Types
2.1 Variables
2.2 Arithmetic
2.3 Input and Output
2.4 Problem Solving: First Do it By Hand
2.6 Strings
Chapter 3 Decisions
3.1 The if Statement
3.2 Comparing Numbers and Strings
3.3 Multiple Alternatives
3.4 Nested Branches
3.5 Problem Solving: Flowcharts
3.6 Problem Solving: Test Cases
3.7 Boolean Variables and Operators
3.8 Application: Input Validation
Chapter 4 Loops
4.1 The while Loop
4.2 Problem Solving: Hand-Tracing
4.3 The for Loop
4.4 The do Loop
4.5 Application: Processing Sentinel Values
4.6 Problem Solving: Storyboards
4.7 Common Loop Algorithms
4.8 Nested Loops
4.9 Application: Random Numbers and Simulations
Chapter 5 Methods
5.1 Methods as Black Boxes
5.2 Implementing Methods
5.3 Parameter Passing
5.4 Return Values
5.5 Methods Without Return Values
5.6 Problem Solving: Reusable Functions
5.7 Problem Solving: Stepwise Refinement
5.8 Variable Scope
5.9 Recursive Methods (Optional)
Chapter 6 Arrays and Array Lists
6.1 Arrays
6.2 The Enhanced for Loop
6.3 Common Array Algorithms
6.4 Using Arrays with Methods
6.5 Problem Solving: Adapting Algorithms
6.6 Problem Solving: Discovering Algorithms by
Manipulating Physical Objects
6.7 Two-Dimensional Arrays
6.8 Array Lists
Chapter 7 Input/Output and Exception Handling
7.1 Reading and Writing Text Files
7.2 Processing Text Input
7.3 Command Line Arguments
7.4 Checked and Unchecked Exceptions
7.5 Catching Exceptions
7.6 The finally Clause
7.7 Application: Handling Input Errors
Chapter 8 Object and Classes
8.1 Object-Oriented Programming
8.2 Implementing a Simple Class
8.3 Specifying the Public Interface of a Class
8.4 Designing the Data Representation
8.5 Problem Solving: Patterns for Representing Behavior
8.6 Implementing Instance Methods
8.7 Constructors
8.8 Problem Solving: Tracing Objects
8.9 Testing a Class
8.10 Object References
8.11 Static Variables and Methods
Chapter 9 Inheritance
9.1 Inheritance Hierarchies
9.2 Implementing Subclasses
9.3 Overriding Methods
9.4 Polymorphism
9.5 Object: The Cosmic Superclass
9.6 Interface Types
Chapter 10 Graphical User Interfaces
10.1 Frame Windows
10.2 Events and Event Handling
10.3 Using Inheritance to Customize Frames
10.4 Building Applications with Buttons
10.5 Using Inner Classes for Listeners
10.6 Processing Text Input
10.7 Text Areas
===== Web chapters ==========================================
Chapter 11 Advanced Graphical User Interfaces
11.1 Layout Management
11.2 Choices
11.3 Menus
11.4 Exploring the Swing Documentation
11.5 Drawing on a Component
11.6 Using Timer Events for Animations
11.7 Mouse Events
Chapter 12 Object-Oriented Design
12.1 The Software Life Cycle
12.2 Discovering Classes
12.3 Relationships Between Classes
12.4 Cohesion and Coupling
12.5 Side Effects
12.5 Abstract Classes
12.6 Packages
12.7 Application: Printing an Invoice
12.8 Application: An Automatic Teller Machine
Chapter 13 Recursion
13.1 Triangle Numbers
13.2. Thinking Recursively
13.3 Recursive Helper Methods
13.4 The Efficiency of Recursion
13.5 Permutations
13.6 Mutual Recursions
13.7 Backtracking
Chapter 14 Sorting and Searching
14.1 Selection Sort
14.2 Profiling the Selection Sort Algorithm
14.3 Analyzing the Performance of the Selection Sort Algorithm
14.4 Merge Sort
14.5 Analyzing the Merge Sort Algorithm
14.6 Searching
14.7 Binary Search
14.8 Sorting Real Data
Chapter 15 The Java Collections Framework
15.1. An Overview of the Collections Framework
15.2. Linked Lists
15.3. Stacks, Queues, and Priority Queues
15.4. Sets
15.5. Maps
==== Appendices ==========================================
APPENDIX A THE BASIC LATIN AND LATIN-1 SUBSETS OF UNICODE
APPENDIX B JAVA OPERATOR SUMMARY
APPENDIX C JAVA RESERVED WORD SUMMARY
APPENDIX D THE JAVA LIBRARY
APPENDIX E JAVA SYNTAX SUMMARY (Online only)
APPENDIX F HTML SUMMARY (Online only)
APPENDIX G TOOL SUMMARY (Online only)
APPENDIX H JAVADOC SUMMARY (Online only)
- Increased coverage of problem-solving: This edition adds practical, step-by-step illustrations of techniques that can help students devise and evaluation solutions to programming problems. Introduced within the chapters where they are most relevant, these strategies include
- Algorithm design (with pseudocode)
- Flowcharts
- Hand-tracing
- Storyboards
- Adapting Algorithms
- New author videos: Cay Horstmann provides mini-lectures on difficult concepts to help students understand the material more thoroughly.
- Optional science/engineering and business exercises: End-of-chapter exercises have been enhanced with problems from engineering and business domains. Geared to students learning Java for engineering or business/Information Systems majors, the exercises are designed to illustrate the value of programming in those fields. These exercises are divided between the text and the online book companion site.
- New and reorganized topics: All chapters were revised and enhanced to respond to user feedback and improve the flow of topics. A chapter on GUI (that was online only in the first edition) is now included in the printed book, while a chapter on data structures that was printed in the first edition is now an online chapter. New example tables, photos, and exercises appear throughout the book.
- Additional programming examples: The author has added many new programming examples both in the book and online on the book companion site.
- Presents fundamentals first
- o Java For Everyone takes a traditional path through the material, stressing control structures, methods, procedural decomposition, and arrays. Objects are used when appropriate in the early chapters. Students start designing and implementing their own classes in Chapter 7.
- Practice makes perfect
- o Before students begin to implement nontrivial programs, they need to have the confidence that they can succeed. This book contains a substantial number of self-check questions at the end of each section. Practice It pointers suggest exercises to try after each section, simple programming assignments, and a variety of online practice opportunities, including guided lab exercises, code completion questions, and skill-oriented multiple-choice questions provide ample opportunity for student programmers to practice what they are learning.
- A visual approach motivates the reader and eases navigation
- o Photographs present visual analogies that explain the nature and behavior of computer concepts. Step-by-step figures illustrate complex programming operations. Syntax boxes and example tables clearly present a variety of typical and special cases in a compact format. Visuals can be browsed by students prior to focusing on the textual material.
- Guidance and worked examples help students succeed
- o Beginning programmers often ask "How do I start?" and "Now what do I do?" While an activity as complex as programming cannot be reduced to cookbook-style instructions, step-by-step guidance is immensely helpful for building confidence and providing an outline for tasks at hand. The book contains a large number of How To guides for common tasks, together with additional worked examples and screencast videos on the web.
The book emphasises on the essentials as well as on effective learning. The end of chapter exercises are excellent in as much as they illustrate the value of programming in application. Any student who studies computer programming should use this book.
Sam Boolakly
London School of Accountancy, Maths Stats and Economics.




