Java Software Solutions, Foundations of Program Design, Global Edition

Höfundar: John Lewis; William Loftus (Útgáfa: 10)
Java Software Solutions, Foundations of Program Design, Global Edition

Kaup valmöguleikar

Java Software Solutions helps you gain the knowledge and skill you need to design true object-oriented solutions. A natural progression of concepts focuses on the use of objects before learning how to write them. Sound programming practices are introduced and reinforced, giving you clear guiding principles to engineer good software. Both small and large real-world examples let you practice sharpening your problem-solving and design skills.

Nánar um bókina

Útgefandi
Pearson International Content
ISBN
9781292484341
Print ISBN
9781292484372
Format
ePub
Útgáfa
10
Höfundar
John Lewis; William Loftus
Tungumál
English
Útgefið
2025-12-02
Prent takmörkun á líftíma
100
Prent takmörkun
2
Afritunar takmörkun
2

Kaflar

  • Welcome
  • Cover
  • Title Page
  • Copyright Page
  • Dedication
  • Contents in a Glance
  • Contents in a Glance
  • Preface
  • Preface
  • New to This Edition
  • Cornerstones of the Text
  • Chapter Breakdown
  • Supplements
  • Instructor Resources
  • Features of the Text
  • Acknowledgments
  • 1: Introduction
  • 1: Learning Objectives
  • 1.1: Computer Processing
  • 1.1: Computer Processing
  • Software Categories
  • Digital Computers
  • Binary Numbers
  • 1.1: Self-Review Questions
  • 1.2: Hardware Components
  • 1.2: Hardware Components
  • Computer Architecture
  • Input/Output Devices
  • Main Memory and Secondary Memory
  • The Central Processing Unit
  • 1.2: Self-Review Questions
  • 1.3: Networks
  • 1.3: Networks
  • Network Connections
  • Local-Area Networks and Wide-Area Networks
  • The Internet
  • The World Wide Web
  • Uniform Resource Locators
  • 1.3: Self-Review Questions
  • 1.4: The Java Programming Language
  • 1.4: The Java Programming Language
  • A Java Program
  • Comments
  • Identifiers and Reserved Words
  • White Space
  • 1.4: Self-Review Questions
  • 1.5: Program Development
  • 1.5: Program Development
  • Programming Language Levels
  • Editors, Compilers, and Interpreters
  • Development Environments
  • Syntax and Semantics
  • Errors
  • 1.5: Self-Review Questions
  • 1.6: Object-Oriented Programming
  • 1.6: Object-Oriented Programming
  • Problem Solving
  • Object-Oriented Software Principles
  • 1.6: Self-Review Questions
  • Chapter 1: Summary of Key Concepts
  • Chapter 1: Summary of Key Concepts
  • Chapter 1: Exercises
  • Chapter 1: Exercises
  • Chapter 1: Programming Projects from the Book
  • Chapter 1: Programming Projects from the Book
  • 2: Data and Expressions
  • 2: Learning Objectives
  • 2.1: Character Strings
  • 2.1: Character Strings
  • The print and println Methods
  • String Concatenation
  • Escape Sequences
  • 2.1: Self-Review Questions
  • 2.2: Variables and Assignment
  • 2.2: Variables and Assignment
  • Variables
  • The Assignment Statement
  • Constants
  • 2.2: Self-Review Questions
  • 2.3: Primitive Data Types
  • 2.3: Primitive Data Types
  • Integers and Floating Points
  • Characters
  • Booleans
  • 2.3: Self-Review Questions
  • 2.4: Expressions
  • 2.4: Expressions
  • Arithmetic Operators
  • Operator Precedence
  • Increment and Decrement Operators
  • Assignment Operators
  • 2.4: Self-Review Questions
  • 2.5: Data Conversion
  • 2.5: Data Conversion
  • Conversion Techniques
  • 2.5: Self-Review Questions
  • 2.6: Interactive Programs
  • 2.6: Interactive Programs
  • The Scanner Class
  • 2.6: Self-Review Questions
  • Chapter 2: Summary of Key Concepts
  • Chapter 2: Summary of Key Concepts
  • Chapter 2: Exercises
  • Chapter 2: Exercises
  • Chapter 2: Programming Projects from the Book
  • Chapter 2: Programming Projects from the Book
  • Chapter 2: Software Failure: NASA Mars Climate Orbiter and Polar Lander
  • Chapter 2: Software Failure: NASA Mars Climate Orbiter and Polar Lander
  • 3: Using Classes and Objects
  • 3: Learning Objectives
  • 3.1: Creating Objects
  • 3.1: Creating Objects
  • Aliases
  • 3.1: Self-Review Questions
  • 3.2: The String Class
  • 3.2: The String Class
  • 3.2: Self-Review Questions
  • 3.3: Packages
  • 3.3: Packages
  • The import Declaration
  • 3.3: Self-Review Questions
  • 3.4: The Random Class
  • 3.4: The Random Class
  • 3.4: Self-Review Questions
  • 3.5: The Math Class
  • 3.5: The Math Class
  • 3.5: Self-Review Questions
  • 3.6: Formatting Output
  • 3.6: Formatting Output
  • The NumberFormat Class
  • The DecimalFormat Class
  • The printf Method
  • 3.6: Self-Review Questions
  • 3.7: Enumerated Types
  • 3.7: Enumerated Types
  • 3.7: Self-Review Questions
  • 3.8: Wrapper Classes
  • 3.8: Wrapper Classes
  • 3.8: Self-Review Questions
  • 3.9: Introduction to JavaFX
  • 3.9: Introduction to JavaFX
  • 3.9: Self-Review Questions
  • 3.10: Basic Shapes
  • 3.10: Basic Shapes
  • 3.10: Self-Review Questions
  • 3.11: Representing Colors
  • 3.11: Representing Colors
  • 3.11: Self-Review Questions
  • Chapter 3: Summary of Key Concepts
  • Chapter 3: Summary of Key Concepts
  • Chapter 3: Exercises
  • Chapter 3: Exercises
  • Chapter 3: Programming Projects from the Book
  • Chapter 3: Programming Projects from the Book
  • 4: Writing Classes
  • 4: Learning Objectives
  • 4.1: Classes and Objects Revisited
  • 4.1: Classes and Objects Revisited
  • 4.1: Self-Review Questions
  • 4.2: Anatomy of a Class
  • 4.2: Anatomy of a Class
  • Instance Data
  • UML Class Diagrams
  • 4.2: Self-Review Questions
  • 4.3: Encapsulation
  • 4.3: Encapsulation
  • Visibility Modifiers
  • Accessors and Mutators
  • 4.3: Self-Review Questions
  • 4.4: Anatomy of a Method
  • 4.4: Anatomy of a Method
  • The return Statement
  • Parameters
  • Local Data
  • Bank Account Example
  • 4.4: Self-Review Questions
  • 4.5: Constructors Revisited
  • 4.5: Constructors Revisited
  • 4.5: Self-Review Questions
  • 4.6: Arcs
  • 4.6: Arcs
  • 4.6: Self-Review Questions
  • 4.7: Images
  • 4.7: Images
  • Viewports
  • 4.7: Self-Review Questions
  • 4.8: Graphical User Interfaces
  • 4.8: Graphical User Interfaces
  • Alternate Ways to Specify Event Handlers
  • 4.8: Self-Review Questions
  • 4.9: Text Fields
  • 4.9: Text Fields
  • 4.9: Self-Review Questions
  • Chapter 4: Summary of Key Concepts
  • Chapter 4: Summary of Key Concepts
  • Chapter 4: Exercises
  • Chapter 4: Exercises
  • Chapter 4: Programming Projects from the Book
  • Chapter 4: Programming Projects from the Book
  • Chapter 4: Software Failure: Denver Airport Baggage Handling System
  • Chapter 4: Software Failure: Denver Airport Baggage Handling System
  • 5: Conditionals and Loops
  • 5: Learning Objectives
  • 5.1: Boolean Expressions
  • 5.1: Boolean Expressions
  • Equality and Relational Operators
  • Logical Operators
  • 5.1: Self-Review Questions
  • 5.2: The If Statement
  • 5.2: The If Statement
  • The if-else Statement
  • Using Block Statements
  • Nested if Statements
  • 5.2: Self-Review Questions
  • 5.3: Comparing Data
  • 5.3: Comparing Data
  • Comparing Floats
  • Comparing Character Data
  • Comparing Objects
  • 5.3: Self-Review Questions
  • 5.4: The While Statement
  • 5.4: The While Statement
  • Infinite Loops
  • Nested Loops
  • The break and continue Statements
  • 5.4: Self-Review Questions
  • 5.5: Iterators
  • 5.5: Iterators
  • Reading Text Files
  • 5.5: Self-Review Questions
  • 5.6: The ArrayList Class
  • 5.6: The ArrayList Class
  • 5.6: Self-Review Questions
  • 5.7: Determining Event Sources
  • 5.7: Determining Event Sources
  • 5.7: Self-Review Questions
  • 5.8: Managing Fonts
  • 5.8: Managing Fonts
  • 5.8: Self-Review Questions
  • 5.9: Check Boxes
  • 5.9: Check Boxes
  • 5.9: Self-Review Questions
  • 5.10: Radio Buttons
  • 5.10: Radio Buttons
  • 5.10: Self-Review Questions
  • Chapter 5: Summary of Key Concepts
  • Chapter 5: Summary of Key Concepts
  • Chapter 5: Exercises
  • Chapter 5: Exercises
  • Chapter 5: Programming Projects from the Book
  • Chapter 5: Programming Projects from the Book
  • Chapter 5: Software Failure: Therac-25
  • Chapter 5: Software Failure: Therac-25
  • 6: More Conditionals and Loops
  • 6: Learning Objectives
  • 6.1: The Switch Statement
  • 6.1: The Switch Statement
  • 6.1: Self-Review Questions
  • 6.2: The Conditional Operator
  • 6.2: The Conditional Operator
  • 6.2: Self-Review Questions
  • 6.3: The Do Statement
  • 6.3: The Do Statement
  • 6.3: Self-Review Questions
  • 6.4: The For Statement
  • 6.4 The for Statement
  • The for-each Loop
  • Comparing Loops
  • 6.4: Self-Review Questions
  • 6.5: Using Loops and Conditionals with Graphics
  • 6.5: Using Loops and Conditionals with Graphics
  • 6.5: Self-Review Questions
  • 6.6: Graphic Transformations
  • 6.6 Graphic Transformations
  • Translation
  • Scaling
  • Rotation
  • Shearing
  • Applying Transformations on Groups
  • 6.6: Self-Review Questions
  • Chapter 6: Summary of Key Concepts
  • Chapter 6: Summary of Key Concepts
  • Chapter 6: Exercises
  • Chapter 6: Exercises
  • Chapter 6: Programming Projects from the Book
  • Chapter 6: Programming Projects from the Book
  • 7: Object-Oriented Design
  • 7: Learning Objectives
  • 7.1: Software Development Activities
  • 7.1: Software Development Activities
  • 7.1: Self-Review Questions
  • 7.2: Identifying Classes and Objects
  • 7.2: Identifying Classes and Objects
  • Assigning Responsibilities
  • 7.2: Self-Review Questions
  • 7.3: Static Class Members
  • 7.3: Static Class Members
  • Static Variables
  • Static Methods
  • 7.3: Self-Review Questions
  • 7.4: Class Relationships
  • 7.4: Class Relationships
  • Dependency
  • Dependencies Among Objects of the Same Class
  • Aggregation
  • The this Reference
  • 7.4: Self-Review Questions
  • 7.5: Interfaces
  • 7.5: Interfaces
  • The Comparable Interface
  • The Iterator Interface
  • 7.5: Self-Review Questions
  • 7.6: Enumerated Types Revisited
  • 7.6: Enumerated Types Revisited
  • 7.6: Self-Review Question
  • 7.7: Method Design
  • 7.7: Method Design
  • Method Decomposition
  • Method Parameters Revisited
  • 7.7: Self-Review Questions
  • 7.8: Method Overloading
  • 7.8: Method Overloading
  • 7.8: Self-Review Questions
  • 7.9: Testing
  • 7.9: Testing
  • Reviews
  • Defect Testing
  • 7.9: Self-Review Questions
  • 7.10: GUI Design
  • 7.10: GUI Design
  • 7.10: Self-Review Questions
  • 7.11: Mouse Events
  • 7.11: Mouse Events
  • 7.11: Self-Review Questions
  • 7.12: Key Events
  • 7.12: Key Events
  • 7.12: Self-Review Questions
  • Chapter 7: Summary of Key Concepts
  • Chapter 7: Summary of Key Concepts
  • Chapter 7: Exercises
  • Chapter 7: Exercises
  • Chapter 7: Programming Projects from the Book
  • Chapter 7: Programming Projects from the Book
  • Chapter 7: Software Failure: 2003 Northeast Blackout
  • Chapter 7: Software Failure: 2003 Northeast Blackout
  • 8: Arrays
  • 8: Learning Objectives
  • 8.1: Array Elements
  • 8.1: Array Elements
  • 8.1: Self-Review Questions
  • 8.2: Declaring and Using Arrays
  • 8.2: Declaring and Using Arrays
  • Bounds Checking
  • Alternate Array Syntax
  • Initializer Lists
  • Arrays as Parameters
  • 8.2: Self-Review Questions
  • 8.3: Arrays of Objects
  • 8.3: Arrays of Objects
  • Array of Comic Books
  • 8.3: Self-Review Questions
  • 8.4: Command-Line Arguments
  • 8.4: Command-Line Arguments
  • 8.4: Self-Review Questions
  • 8.5: Variable Length Parameter Lists
  • 8.5: Variable Length Parameter Lists
  • 8.5: Self-Review Questions
  • 8.6: Two-Dimensional Arrays
  • 8.6: Two-Dimensional Arrays
  • Multidimensional Arrays
  • 8.6: Self-Review Questions
  • 8.7: Polygons and Polylines
  • 8.7: Polygons and Polylines
  • 8.7: Self-Review Questions
  • 8.8: An Array of Color Objects
  • 8.8: An Array of Color Objects
  • 8.8: Self-Review Questions
  • 8.9: Choice Boxes
  • 8.9: Choice Boxes
  • 8.9: Self-Review Questions
  • Chapter 8: Summary of Key Concepts
  • Chapter 8: Summary of Key Concepts
  • Chapter 8: Exercises
  • Chapter 8: Exercises
  • Chapter 8: Programming Projects from the Book
  • Chapter 8: Programming Projects from the Book
  • Chapter 8: Software Failure: LA Air Traffic Control
  • Chapter 8: Software Failure: LA Air Traffic Control
  • 9: Inheritance
  • 9: Learning Objectives
  • 9.1: Creating Subclasses
  • 9.1: Creating Subclasses
  • The protected Modifier
  • The super Reference
  • Multiple Inheritance
  • 9.1: Self-Review Questions
  • 9.2: Overriding Methods
  • 9.2: Overriding Methods
  • Shadowing Variables
  • 9.2: Self-Review Questions
  • 9.3: Class Hierarchies
  • 9.3: Class Hierarchies
  • The Object Class
  • Abstract Classes
  • Inheritance Hierarchies
  • 9.3: Self-Review Questions
  • 9.4: Visibility
  • 9.4: Visibility
  • 9.4: Self-Review Questions
  • 9.5: Designing for Inheritance
  • 9.5: Designing for Inheritance
  • Restricting Inheritance
  • 9.5: Self-Review Questions
  • 9.6: Inheritance in JavaFX
  • 9.6: Inheritance in JavaFX
  • 9.6: Self-Review Questions
  • 9.7: Color and Date Pickers
  • 9.7: Color and Date Pickers
  • 9.7: Self-Review Questions
  • 9.8: Dialog Boxes
  • 9.8: Dialog Boxes
  • File Choosers
  • 9.8: Self-Review Questions
  • Chapter 9: Summary of Key Concepts
  • Chapter 9: Summary of Key Concepts
  • Chapter 9: Exercises
  • Chapter 9: Exercises
  • Chapter 9: Programming Projects from the Book
  • Chapter 9: Programming Projects from the Book
  • Chapter 9: Software Failure: Ariane 5 Flight 501
  • Chapter 9: Software Failure: Ariane 5 Flight 501
  • 10: Polymorphism
  • 10: Learning Objectives
  • 10.1: Late Binding
  • 10.1: Late Binding
  • 10.1: Self-Review Questions
  • 10.2: Polymorphism via Inheritance
  • 10.2: Polymorphism via Inheritance
  • 10.2: Self-Review Questions
  • 10.3: Polymorphism via Interfaces
  • 10.3: Polymorphism via Interfaces
  • 10.3: Self-Review Questions
  • 10.4: Sorting
  • 10.4: Sorting
  • Selection Sort
  • Insertion Sort
  • Comparing Sorts
  • 10.4: Self-Review Questions
  • 10.5: Searching
  • 10.5: Searching
  • Linear Search
  • Binary Search
  • Comparing Searches
  • 10.5: Self-Review Questions
  • 10.6: Designing for Polymorphism
  • 10.6: Designing for Polymorphism
  • 10.6: Self-Review Questions
  • 10.7: Properties
  • 10.7: Properties
  • Change Listeners
  • 10.7: Self-Review Questions
  • 10.8: Sliders
  • 10.8: Sliders
  • 10.8: Self-Review Questions
  • 10.9: Spinners
  • 10.9: Spinners
  • 10.9: Self-Review Questions
  • Chapter 10: Summary of Key Concepts
  • Chapter 10: Summary of Key Concepts
  • Chapter 10: Exercises
  • Chapter 10: Exercises
  • Chapter 10: Programming Projects from the Book
  • Chapter 10: Programming Projects from the Book
  • 11: Exceptions
  • 11: Learning Objectives
  • 11.1: Exception Handling
  • 11.1: Exception Handling
  • 11.1: Self-Review Questions
  • 11.2: Uncaught Exceptions
  • 11.2: Uncaught Exceptions
  • 11.2: Self-Review Questions
  • 11.3: The try-catch Statement
  • 11.3: The try-catch Statement
  • The finally Clause
  • 11.3: Self-Review Questions
  • 11.4: Exception Propagation
  • 11.4: Exception Propagation
  • 11.4: Self-Review Questions
  • 11.5: The Exception Class Hierarchy
  • 11.5: The Exception Class Hierarchy
  • Checked and Unchecked Exceptions
  • 11.5: Self-Review Questions
  • 11.6: I/O Exceptions
  • 11.6: I/O Exceptions
  • 11.6: Self-Review Questions
  • 11.7: Tool Tips and Disabling Controls
  • 11.7: Tool Tips and Disabling Controls
  • 11.7: Self-Review Questions
  • 11.8: Scroll Panes
  • 11.8: Scroll Panes
  • 11.8: Self-Review Questions
  • 11.9: Split Panes and List Views
  • 11.9: Split Panes and List Views
  • 11.9: Self-Review Questions
  • Chapter 11: Summary of Key Concepts
  • Chapter 11: Summary of Key Concepts
  • Chapter 11: Exercises
  • Chapter 11: Exercises
  • Chapter 11: Programming Projects from the Book
  • Chapter 11: Programming Projects from the Book
  • 12: Recursion
  • 12: Learning Objectives
  • 12.1: Recursive Thinking
  • 12.1: Recursive Thinking
  • Infinite Recursion
  • Recursion in Math
  • 12.1: Self-Review Questions
  • 12.2: Recursive Programming
  • 12.2: Recursive Programming
  • Recursion vs. Iteration
  • Direct vs. Indirect Recursion
  • 12.2: Self-Review Questions
  • 12.3: Using Recursion
  • 12.3: Using Recursion
  • Traversing a Maze
  • The Towers of Hanoi
  • 12.3: Self-Review Questions
  • 12.4: Tiled Images
  • 12.4: Tiled Images
  • 12.4: Self-Review Questions
  • 12.5: Fractals
  • 12.5: Fractals
  • 12.5: Self-Review Questions
  • Chapter 12: Summary of Key Concepts
  • Chapter 12: Summary of Key Concepts
  • Chapter 12: Exercises
  • Chapter 12: Exercises
  • Chapter 12: Programming Projects from the Book
  • Chapter 12: Programming Projects from the Book
  • 13: Collections
  • 13: Learning Objectives
  • 13.1: Collections and Data Structures
  • 13.1: Collections and Data Structures
  • Separating Interface from Implementation
  • 13.1: Self-Review Questions
  • 13.2: Dynamic Representations
  • 13.2: Dynamic Representations
  • Dynamic Structures
  • A Dynamically Linked List
  • Other Dynamic List Representations
  • 13.2: Self-Review Questions
  • 13.3: Linear Collections
  • 13.3: Linear Collections
  • Queues
  • Stacks
  • 13.3: Self-Review Questions
  • 13.4: Non-Linear Data Structures
  • 13.4: Non-Linear Data Structures
  • Trees
  • Graphs
  • 13.4: Self-Review Questions
  • 13.5: The Java Collections API
  • 13.5: The Java Collections API
  • Generics
  • 13.5: Self-Review Questions
  • 13.6: Maps
  • 13.6: Maps
  • 13.6: Self-Review Questions
  • 13.7: Simplifying Declarations Using var
  • 13.7: Simplifying Declarations Using var
  • 13.7: Self-Review Questions
  • 13.8: Lambdas and Collections
  • 13.8: Lambdas and Collections
  • 13.8: Self-Review Questions
  • Chapter 13: Summary of Key Concepts
  • Chapter 13: Summary of Key Concepts
  • Chapter 13: Exercises
  • Chapter 13: Exercises
  • Chapter 13: Programming Projects from the Book
  • Chapter 13: Programming Projects from the Book
  • Appendix A: Number Systems
  • Appendix A: Number Systems
  • Place Value
  • Bases Higher Than 10
  • Conversions
  • Shortcut Conversions
  • Appendix B: The Unicode Character Set
  • Appendix B: The Unicode Character Set
  • Appendix C: Java Operators
  • Appendix C: Java Operators
  • Java Bitwise Operators
  • Appendix D: Java Modifiers
  • Appendix D: Java Modifiers
  • Java Visibility Modifiers
  • A Visibility Example
  • Other Java Modifiers
  • Appendix E: Java Coding Guidelines
  • Appendix E: Java Coding Guidelines
  • Design Guidelines
  • Style Guidelines
  • Documentation Guidelines
  • Appendix F: JavaFX Layout Panes
  • Appendix F: JavaFX Layout Panes
  • Flow Pane
  • Tile Pane
  • Stack Pane
  • HBox and VBox
  • Anchor Pane
  • Border Pane
  • Grid Pane
  • Appendix G: JavaFX Scene Builder
  • Appendix G: JavaFX Scene Builder
  • Hello Moon
  • Handling Events in JavaFX Scene Builder
  • Appendix H: Regular Expressions
  • Appendix H: Regular Expressions
  • Appendix I: Javadoc Documentation Generator
  • Appendix I: Javadoc Documentation Generator
  • Doc Comments
  • Tags
  • Files Generated
  • Appendix J: Java Syntax
  • Appendix J: Java Syntax
  • Appendix K: Answers to Self-Review Questions
  • Chapter 1: Introduction
  • Chapter 2: Data and Expressions
  • Chapter 3: Using Classes and Objects
  • Chapter 4: Writing Classes
  • Chapter 5: Conditionals and Loops
  • Chapter 6: More Conditionals and Loops
  • Chapter 7: Object-Oriented Design
  • Chapter 8: Arrays
  • Chapter 9: Inheritance
  • Chapter 10: Polymorphism
  • Chapter 11: Exceptions
  • Chapter 12: Recursion
  • Chapter 13: Collections
  • Student Supplemental Materials
  • Student Supplemental Materials
  • Glossary