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.
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.
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 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)