Java For Everyone, 2nd Edition is a comprehensive introduction toJava and computer programming, which focuses on the principles ofprogramming, software engineering, and effective learning. It isdesigned for a one-semester, mixed-major, first course inprogramming.
Nobody supports your desire to teach students good programmingskills like Cay Horstmann. Active in both the classroom and thesoftware industry, Horstmann knows that meticulous coding-notshortcuts-is the base upon which great programmers are made. Usingan innovative visual design that leads students step-by-stepthrough intricacies of Java programming, Java For Everyone, 2ndEdition instills confidence in beginning programmers and confidenceleads to success.
Table of Contents:
Chapter 1 Introduction
1.1 Computer Programs
1.2 The Anatomy of a Computer
1.3 The Java Programming Language
1.4 Becoming Familiar with Your ProgrammingEnvironment
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 SentinelValues
4.6 Problem Solving: Storyboards
4.7 Common Loop Algorithms
4.8 Nested Loops
4.9 Application: Random Numbers andSimulations
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 Algorithmsby
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 aClass
8.4 Designing the Data Representation
8.5 Problem Solving: Patterns for RepresentingBehavior
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 CustomizeFrames
10.4 Building Applications withButtons
10.5 Using Inner Classes forListeners
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 SwingDocumentation
11.5 Drawing on a Component
11.6 Using Timer Events forAnimations
11.7 Mouse Events
Chapter 12 Object-Oriented Design
12.1 The Software Life Cycle
12.2 Discovering Classes
12.3 Relationships BetweenClasses
12.4 Cohesion and Coupling
12.5 Side Effects
12.5 Abstract Classes
12.6 Packages
12.7 Application: Printing anInvoice
12.8 Application: An AutomaticTeller Machine
Chapter 13 Recursion
13.1 Triangle Numbers
13.2. Thinking Recursively
13.3 Recursive Helper Methods
13.4 The Efficiency ofRecursion
13.5 Permutations
13.6 Mutual Recursions
13.7 Backtracking
Chapter 14 Sorting and Searching
14.1 Selection Sort
14.2 Profiling the Selection SortAlgorithm
14.3 Analyzing the Performance ofthe Selection Sort Algorithm
14.4 Merge Sort
14.5 Analyzing the Merge SortAlgorithm
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)
About the Author :
CAY S. HORSTMANN is a Professor of Computer Science in the Department of Computer Science at San Jose State University. He is an experienced professional programmer and was Vice President and Chief Technology Officer for Preview Systems, Inc. He is also a consultant for major corporations, universities and organizations on C++, Java, Windows, and Internet programming. Horstmann is the author of many successful professional and academic books, including Object Oriented Design and Patterns, Big Java, Big C++, Computing Concepts with C++ Essentials (all with John Wiley & Sons, Inc.), and core Java (Sun Microsystems Press), with Gary Cornell.