Objects first with Java
Subtitle: a practical introduction using BlueJ
By: David J. Barnes and Michael Kölling.
Contributors: Kölling, Michael.
Edition: 4th ed.
Publisher: Pearson Prentice Hall
Published: 2009
Place of publication: Upper Saddle River, N.J
Language: eng
Number of pages: 560
ISBN-13: 9780136060864
Subjects: Object-oriented programming (Computer science); Java (Computer program language); Computer science -- Study and teaching
Notes: Includes bibliographical references and index.
Table of contents: title: Foreword
pagenum: xviii; title: Preface To The Instructor
pagenum: xix; title: Guided Tour
pagenum: xxvii; title: List Of Projects Discussed In Detail In This Book
pagenum: xxix; title: Acknowledgments
pagenum: xxxi; label: Part 1
title: Foundations Of Object Orientation
pagenum: 1; label: Chapter 1
title: Objects And Classes
pagenum: 3; label: 1.1
title: Objects And Classes
pagenum: 3; label: 1.2
title: Creating Objects
pagenum: 4; label: 1.3
title: Calling Methods
pagenum: 5; label: 1.4
title: Parameters
pagenum: 6; label: 1.5
title: Data Types
pagenum: 7; label: 1.6
title: Multiple Instances
pagenum: 8; label: 1.7
title: State
pagenum: 8; label: 1.8
title: What Is In An Object?
pagenum: 9; label: 1.9
title: Object Interaction
pagenum: 10; label: 1.10
title: Source Code
pagenum: 11; label: 1.11
title: Another Example
pagenum: 13; label: 1.12
title: Return Values
pagenum: 13; label: 1.13
title: Objects As Parameters
pagenum: 14; label: 1.14
title: Summary
pagenum: 15; label: Chapter 2
title: Understanding Class Definitions
pagenum: 18; label: 2.1
title: Ticket Machines
pagenum: 18; label: 2.1.1
title: Exploring The Behavior Of A Naïve Ticket Machine
pagenum: 19; label: 2.2
title: Examining A Class Definition
pagenum: 20; label: 2.3
title: Fields, Constructors, And Methods
pagenum: 22; label: 2.3.1
title: Fields
pagenum: 24; label: 2.3.2
title: Constructors
pagenum: 26; label: 2.4
title: Passing Data Via Parameters
pagenum: 27; label: 2.5
title: Assignment
pagenum: 29; label: 2.6
title: Accessor Methods
pagenum: 30; label: 2.7
title: Mutator Methods
pagenum: 32; label: 2.8
title: Printing From Methods
pagenum: 34; label: 2.9
title: Summary Of The Naïve Ticket Machine
pagenum: 36; label: 2.10
title: Reflecting On The Design Of The Ticket Machine
pagenum: 37; label: 2.11
title: Making Choices: The Conditional Statement
pagenum: 40; label: 2.12
title: A Further Conditional-Statement Example
pagenum: 41; label: 2.13
title: Local Variables
pagenum: 42; label: 2.14
title: Fields, Parameters, And Local Variables
pagenum: 44; label: 2.15
title: Summary Of The Better Ticket Machine
pagenum: 45; label: 2.16
title: Self‑Review Exercises
pagenum: 45; label: 2.17
title: Reviewing A Familiar Example
pagenum: 47; label: 2.18
title: Experimenting With Expressions: The Code Pad
pagenum: 50; label: 2.19
title: Summary
pagenum: 52; label: Chapter 3
title: Object Interaction
pagenum: 56; label: 3.1
title: The Clock Example
pagenum: 56; label: 3.2
title: Abstraction And Modularization
pagenum: 57; label: 3.3
title: Abstraction In Software
pagenum: 58; label: 3.4
title: Modularization In The Clock Example
pagenum: 58; label: 3.5
title: Implementing The Clock Display
pagenum: 59; label: 3.6
title: Class Diagrams Versus Object Diagrams
pagenum: 60; label: 3.7
title: Primitive Types And Object Types
pagenum: 63; label: 3.8
title: The ClockDisplay Source Code
pagenum: 63; label: 3.8.1
title: Class NumberDisplay
pagenum: 63; label: 3.8.2
title: String Concatenation
pagenum: 66; label: 3.8.3
title: The Modulo Operator
pagenum: 67; label: 3.8.4
title: Class ClockDisplay
pagenum: 68; label: 3.9
title: Objects Creating Objects
pagenum: 71; label: 3.10
title: Multiple Constructors
pagenum: 73; label: 3.11
title: Method Calls
pagenum: 73; label: 3.11.1
title: Internal Method Calls
pagenum: 73; label: 3.11.2
title: External Method Calls
pagenum: 74; label: 3.11.3
title: Summary Of The Clock Display
pagenum: 75; label: 3.12
title: Another Example Of Object Interaction
pagenum: 76; label: 3.12.1
title: The Mail System Example
pagenum: 77; label: 3.12.2
title: The This Keyword
pagenum: 78; label: 3.13
title: Using A Debugger
pagenum: 79; label: 3.13.1
title: Setting Breakpoints
pagenum: 80; label: 3.13.2
title: Single Stepping
pagenum: 81; label: 3.13.3
title: Stepping Into Methods
pagenum: 82; label: 3.14
title: Method Calling Revisited
pagenum: 83; label: 3.15
title: Summary
pagenum: 84; label: Chapter 4
title: Grouping Objects
pagenum: 87; label: 4.1
title: Grouping Objects In Flexible-Size Collections
pagenum: 87; label: 4.2
title: A Personal Notebook
pagenum: 88; label: 4.3
title: A First Look At Library Classes
pagenum: 88; label: 4.3.1
title: An Example Of Using A Library
pagenum: 89; label: 4.4
title: Object Structures With Collections
pagenum: 91; label: 4.5
title: Generic Classes
pagenum: 92; label: 4.6
title: Numbering Within Collections
pagenum: 93; label: 4.7
title: Removing An Item From A Collection
pagenum: 94; label: 4.8
title: Processing A Whole Collection
pagenum: 96; label: 4.8.1
title: The For-Each Loop
pagenum: 97; label: 4.8.2
title: The While Loop
pagenum: 99; label: 4.8.3
title: Iterating Over A Collection
pagenum: 102; label: 4.8.4
title: Index Access Versus Iterators
pagenum: 103; label: 4.8.5
title: Removing Elements
pagenum: 104; label: 4.9
title: Summary Of The Notebook Example
pagenum: 105; label: 4.10
title: Another Example: An Auction System
pagenum: 106; label: 4.10.1
title: The Lot Class
pagenum: 106; label: 4.10.2
title: The Auction Class
pagenum: 108; label: 4.10.3
title: Anonymous Objects
pagenum: 110; label: 4.10.4
title: Using Collections
pagenum: 111; label: 4.11
title: Flexible Collection Summary
pagenum: 113; label: 4.12
title: Fixed-Size Collections
pagenum: 114; label: 4.12.1
title: A Log-File Analyzer
pagenum: 114; label: 4.12.2
title: Declaring Array Variables
pagenum: 117; label: 4.12.3
title: Creating Array Objects
pagenum: 117; label: 4.12.4
title: Using Array Objects
pagenum: 119; label: 4.12.5
title: Analyzing The Log File
pagenum: 119; label: 4.12.6
title: The For Loop
pagenum: 120; label: 4.12.7
title: The For Loop And Iterators
pagenum: 122; label: 4.13
title: Summary
pagenum: 126; label: Chapter 5
title: More Sophisticated Behavior
pagenum: 128; label: 5.1
title: Documentation For Library Classes
pagenum: 129; label: 5.2
title: The TechSupport System
pagenum: 130; label: 5.2.1
title: Exploring The TechSupport System
pagenum: 130; label: 5.2.2
title: Reading The Code
pagenum: 132; label: 5.3
title: Reading Class Documentation
pagenum: 136; label: 5.3.1
title: Interfaces Versus Implementation
pagenum: 137; label: 5.3.2
title: Using Library-Class Methods
pagenum: 138; label: 5.3.3
title: Checking String Equality
pagenum: 140; label: 5.4
title: Adding Random Behavior
pagenum: 140; label: 5.4.1
title: The Random Class
pagenum: 141; label: 5.4.2
title: Random Numbers With Limited Range
pagenum: 142; label: 5.4.3
title: Generating Random Responses
pagenum: 143; label: 5.4.4
title: Reading Documentation For Parameterized Classes
pagenum: 146; label: 5.5
title: Packages And Import
pagenum: 146; label: 5.6
title: Using Maps For Associations
pagenum: 147; label: 5.6.1
title: The Concept Of A Map
pagenum: 148; label: 5.6.2
title: Using A HashMap
pagenum: 148; label: 5.6.3
title: Using A Map For The TechSupport System
pagenum: 150; label: 5.7
title: Using Sets
pagenum: 152; label: 5.8
title: Dividing Strings
pagenum: 153; label: 5.9
title: Finishing The TechSupport System
pagenum: 154; label: 5.10
title: Writing Class Documentation
pagenum: 156; label: 5.10.1
title: Using Javadoc In BlueJ
pagenum: 157; label: 5.10.2
title: Elements Of Class Documentation
pagenum: 157; label: 5.11
title: Public Versus Private
pagenum: 158; label: 5.11.1
title: Information Hiding
pagenum: 159; label: 5.11.2
title: Private Methods And Public Fields
pagenum: 160; label: 5.12
title: Learning About Classes From Their Interfaces
pagenum: 161; label: 5.13
title: Class Variables And Constants
pagenum: 163; label: 5.13.1
title: The Static Keyword
pagenum: 164; label: 5.13.2
title: Constants
pagenum: 165; label: 5.14
title: Summary
pagenum: 166; label: Chapter 6
title: Well-Behaved Objects
pagenum: 169; label: 6.1
title: Introduction
pagenum: 169; label: 6.2
title: Testing And Debugging
pagenum: 170; label: 6.3
title: Unit Testing Within BlueJ
pagenum: 170; label: 6.3.1
title: Using Inspectors
pagenum: 175; label: 6.3.2
title: Positive Versus Negative Testing
pagenum: 177; label: 6.4
title: Test Automation
pagenum: 177; label: 6.4.1
title: Regression Testing
pagenum: 178; label: 6.4.2
title: Automated Checking Of Test Results
pagenum: 180; label: 6.4.3
title: Recording A Test
pagenum: 183; label: 6.4.4
title: Fixtures
pagenum: 185; label: 6.5
title: Modularization And Interfaces
pagenum: 186; label: 6.6
title: A Debugging Scenario
pagenum: 188; label: 6.7
title: Commenting And Style
pagenum: 188; label: 6.8
title: Manual Walkthroughs
pagenum: 190; label: 6.8.1
title: A High-Level Walkthrough
pagenum: 190; label: 6.8.2
title: Checking State With A Walkthrough
pagenum: 192; label: 6.8.3
title: Verbal Walkthroughs
pagenum: 194; label: 6.9
title: Print Statements
pagenum: 195; label: 6.9.1
title: Turning Debugging Information On Or Off
pagenum: 197; label: 6.10
title: Choosing A Test Strategy
pagenum: 198; label: 6.11
title: Debuggers
pagenum: 199; label: 6.12
title: Putting The Techniques Into Practice
pagenum: 200; label: 6.13
title: Summary
pagenum: 200; label: Chapter 7
title: Designing Classes
pagenum: 201; label: 7.1
title: Introduction
pagenum: 201; label: 7.2
title: The World-Of-Zuul Game Example
pagenum: 203; label: 7.3
title: Introduction To Coupling And Cohesion
pagenum: 205; label: 7.4
title: Code Duplication
pagenum: 206; label: 7.5
title: Making Extensions
pagenum: 210; label: 7.5.1
title: The Task
pagenum: 210; label: 7.5.2
title: Finding The Relevant Source Code
pagenum: 210; label: 7.6
title: Coupling
pagenum: 212; label: 7.6.1
title: Using Encapsulation To Reduce Coupling
pagenum: 213; label: 7.7
title: Responsibility-Driven Design
pagenum: 217; label: 7.7.1
title: Responsibilities And Coupling
pagenum: 217; label: 7.8
title: Localizing Change
pagenum: 220; label: 7.9
title: Implicit Coupling
pagenum: 220; label: 7.10
title: Thinking Ahead
pagenum: 224; label: 7.11
title: Cohesion
pagenum: 225; label: 7.11.1
title: Cohesion Of Methods
pagenum: 225; label: 7.11.2
title: Cohesion Of Classes
pagenum: 226; label: 7.11.3
title: Cohesion For Readability
pagenum: 227; label: 7.11.4
title: Cohesion For Reuse
pagenum: 227; label: 7.12
title: Refactoring
pagenum: 228; label: 7.12.1
title: Refactoring And Testing
pagenum: 229; label: 7.12.2
title: An Example Of Refactoring
pagenum: 229; label: 7.13
title: Refactoring For Language Independence
pagenum: 233; label: 7.13.1
title: Enumerated Types
pagenum: 233; label: 7.13.2
title: Further Decoupling Of The Command Interface
pagenum: 235; label: 7.14
title: Design Guidelines
pagenum: 237; label: 7.15
title: Executing Without BlueJ
pagenum: 238; label: 7.15.1
title: Class Methods
pagenum: 238; label: 7.15.2
title: The Main Method
pagenum: 239; label: 7.15.3
title: Limitations Of Class Methods
pagenum: 239; label: 7.16
title: Summary
pagenum: 240; label: Part 2
title: Application Structures
pagenum: 243; label: Chapter 8
title: Improving Structure With Inheritance
pagenum: 245; label: 8.1
title: The Dome Example
pagenum: 245; label: 8.1.1
title: Dome Classes And Objects
pagenum: 246; label: 8.1.2
title: Dome Source Code
pagenum: 249; label: 8.1.3
title: Discussion Of The Dome Application
pagenum: 255; label: 8.2
title: Using Inheritance
pagenum: 256; label: 8.3
title: Inheritance Hierarchies
pagenum: 257; label: 8.4
title: Inheritance In Java
pagenum: 258; label: 8.4.1
title: Inheritance And Access Rights
pagenum: 259; label: 8.4.2
title: Inheritance And Initialization
pagenum: 260; label: 8.5
title: Dome: Adding Other Item Types
pagenum: 262; label: 8.6
title: Advantages Of Inheritance (So Far)
pagenum: 264; label: 8.7
title: Subtyping
pagenum: 265; label: 8.7.1
title: Subclasses And Subtypes
pagenum: 266; label: 8.7.2
title: Subtyping And Assignment
pagenum: 267; label: 8.7.3
title: Subtyping And Parameter Passing
pagenum: 268; label: 8.7.4
title: Polymorphic Variables
pagenum: 269; label: 8.7.5
title: Casting
pagenum: 270; label: 8.8
title: The Object Class
pagenum: 271; label: 8.9
title: Autoboxing And Wrapper Classes
pagenum: 272; label: 8.10
title: The Collection Hierarchy
pagenum: 273; label: 8.11
title: Summary
pagenum: 273; label: Chapter 9
title: More About Inheritance
pagenum: 276; label: 9.1
title: The Problem: Dome's Print Method
pagenum: 276; label: 9.2
title: Static Type And Dynamic Type
pagenum: 278; label: 9.2.1
title: Calling Print From Database
pagenum: 279; label: 9.3
title: Overriding
pagenum: 281; label: 9.4
title: Dynamic Method Lookup
pagenum: 282; label: 9.5
title: Super Call In Methods
pagenum: 285; label: 9.6
title: Method Polymorphism
pagenum: 287; label: 9.7
title: Object Methods: ToString
pagenum: 287; label: 9.8
title: Object Equality: Equals And HashCode
pagenum: 290; label: 9.9
title: Protected Access
pagenum: 292; label: 9.10
title: The Instanceof Operator
pagenum: 294; label: 9.11
title: Another Example Of Inheritance With Overriding
pagenum: 295; label: 9.12
title: Summary
pagenum: 297; label: Chapter 10
title: Further Abstraction Techniques
pagenum: 300; label: 10.1
title: Simulations
pagenum: 300; label: 10.2
title: The Foxes-And-Rabbits Simulation
pagenum: 301; label: 10.2.1
title: The Foxes-And-Rabbits Project
pagenum: 302; label: 10.2.2
title: The Rabbit Class
pagenum: 305; label: 10.2.3
title: The Fox Class
pagenum: 308; label: 10.2.4
title: The Simulator Class: Setup
pagenum: 311; label: 10.2.5
title: The Simulator Class: A Simulation Step
pagenum: 314; label: 10.2.6
title: Taking Steps To Improve The Simulation
pagenum: 316; label: 10.3
title: Abstract Classes
pagenum: 316; label: 10.3.1
title: The Animal Superclass
pagenum: 317; label: 10.3.2
title: Abstract Methods
pagenum: 318; label: 10.3.3
title: Abstract Classes
pagenum: 320; label: 10.4
title: More Abstract Methods
pagenum: 322; label: 10.5
title: Multiple Inheritance
pagenum: 324; label: 10.5.1
title: An Actor Class
pagenum: 324; label: 10.5.2
title: Flexibility Through Abstraction
pagenum: 326; label: 10.5.3
title: Selective Drawing
pagenum: 326; label: 10.5.4
title: Drawable Actors: Multiple Inheritance
pagenum: 327; label: 10.6
title: Interfaces
pagenum: 328; label: 10.6.1
title: An Actor Interface
pagenum: 328; label: 10.6.2
title: Multiple Inheritance Of Interfaces
pagenum: 330; label: 10.6.3
title: Interfaces As Types
pagenum: 331; label: 10.6.4
title: Interfaces As Specifications
pagenum: 331; label: 10.6.5
title: A Further Example Of Interfaces
pagenum: 332; label: 10.6.6
title: Abstract Class Or Interface?
pagenum: 333; label: 10.7
title: Summary Of Inheritance
pagenum: 334; label: 10.8
title: Summary
pagenum: 334; label: Chapter 11
title: Building Graphical User Interfaces
pagenum: 337; label: 11.1
title: Introduction
pagenum: 337; label: 11.2
title: Components, Layout, And Event Handling
pagenum: 338; label: 11.3
title: AWT And Swing
pagenum: 338; label: 11.4
title: The ImageViewer Example
pagenum: 339; label: 11.4.1
title: First Experiments: Creating A Frame
pagenum: 339; label: 11.4.2
title: Adding Simple Components
pagenum: 342; label: 11.4.3
title: Adding Menus
pagenum: 343; label: 11.4.4
title: Event Handling
pagenum: 344; label: 11.4.5
title: Centralized Receipt Of Events
pagenum: 345; label: 11.4.6
title: Inner Classes
pagenum: 348; label: 11.4.7
title: Anonymous Inner Classes
pagenum: 349; label: 11.4.8
title: Summary Of Key GUI Elements
pagenum: 351; label: 11.5
title: ImageViewer 1.0: The First Complete Version
pagenum: 351; label: 11.5.1
title: Image-Processing Classes
pagenum: 351; label: 11.5.2
title: Adding The Image
pagenum: 353; label: 11.5.3
title: Layout
pagenum: 354; label: 11.5.4
title: Nested Containers
pagenum: 356; label: 11.5.5
title: Image Filters
pagenum: 360; label: 11.5.6
title: Dialogs
pagenum: 363; label: 11.5.7
title: Summary Of Layout Management
pagenum: 364; label: 11.6
title: ImageViewer 2.0: Improving Program Structure
pagenum: 365; label: 11.7
title: ImageViewer 3.0: More Interface Components
pagenum: 370; label: 11.7.1
title: Buttons
pagenum: 370; label: 11.7.2
title: Borders
pagenum: 373; label: 11.8
title: Further Extensions
pagenum: 374; label: 11.9
title: Another Example: SoundPlayer
pagenum: 376; label: 11.10
title: Summary
pagenum: 379; label: Chapter 12
title: Handling Errors
pagenum: 381; label: 12.1
title: The Address-Book Project
pagenum: 382; label: 12.2
title: Defensive Programming
pagenum: 386; label: 12.2.1
title: Client-Server Interaction
pagenum: 386; label: 12.2.2
title: Argument Checking
pagenum: 388; label: 12.3
title: Server Error Reporting
pagenum: 389; label: 12.3.1
title: Notifying The User
pagenum: 389; label: 12.3.2
title: Notifying The Client Object
pagenum: 390; label: 12.4
title: Exception-Throwing Principles
pagenum: 393; label: 12.4.1
title: Throwing An Exception
pagenum: 393; label: 12.4.2
title: Exception Classes
pagenum: 394; label: 12.4.3
title: The Effect Of An Exception
pagenum: 396; label: 12.4.4
title: Unchecked Exceptions
pagenum: 397; label: 12.4.5
title: Preventing Object Creation
pagenum: 398; label: 12.5
title: Exception Handling
pagenum: 399; label: 12.5.1
title: Checked Exceptions: The Throws Clause
pagenum: 399; label: 12.5.2
title: Catching Exceptions: The Try Statement
pagenum: 400; label: 12.5.3
title: Throwing And Catching Multiple Exceptions
pagenum: 402; label: 12.5.4
title: Propagating An Exception
pagenum: 404; label: 12.5.5
title: The Finally Clause
pagenum: 404; label: 12.6
title: Defining New Exception Classes
pagenum: 405; label: 12.7
title: Using Assertions
pagenum: 407; label: 12.7.1
title: Internal Consistency Checks
pagenum: 407; label: 12.7.2
title: The Assert Statement
pagenum: 407; label: 12.7.3
title: Guidelines For Using Assertions
pagenum: 409; label: 12.7.4
title: Assertions And The BlueJ Unit Testing Framework
pagenum: 410; label: 12.8
title: Error Recovery And Avoidance
pagenum: 410; label: 12.8.1
title: Error Recovery
pagenum: 410; label: 12.8.2
title: Error Avoidance
pagenum: 412; label: 12.9
title: File-Based Input/Output
pagenum: 413; label: 12.9.1
title: Readers, Writers, And Streams
pagenum: 414; label: 12.9.2
title: Text Output With FileWriter
pagenum: 414; label: 12.9.3
title: Text Input With FileReader
pagenum: 416; label: 12.9.4
title: The File Class
pagenum: 419; label: 12.9.5
title: Scanner: Reading Input From The Terminal
pagenum: 419; label: 12.9.6
title: Object Serialization
pagenum: 421; label: 12.10
title: Summary
pagenum: 422; label: Chapter 13
title: Designing Applications
pagenum: 424; label: 13.1
title: Analysis And Design
pagenum: 424; label: 13.1.1
title: The Verb/Noun Method
pagenum: 425; label: 13.1.2
title: The Cinema Booking Example
pagenum: 425; label: 13.1.3
title: Discovering Classes
pagenum: 425; label: 13.1.4
title: Using CRC Cards
pagenum: 426; label: 13.1.5
title: Scenarios
pagenum: 427; label: 13.2
title: Class Design
pagenum: 431; label: 13.2.1
title: Designing Class Interfaces
pagenum: 431; label: 13.2.2
title: User Interface Design
pagenum: 432; label: 13.3
title: Documentation
pagenum: 432; label: 13.4
title: Cooperation
pagenum: 433; label: 13.5
title: Prototyping
pagenum: 434; label: 13.6
title: Software Growth
pagenum: 434; label: 13.6.1
title: Waterfall Model
pagenum: 434; label: 13.6.2
title: Iterative Development
pagenum: 435; label: 13.7
title: Using Design Patterns
pagenum: 436; label: 13.7.1
title: Structure Of A Pattern
pagenum: 437; label: 13.7.2
title: Decorator
pagenum: 437; label: 13.7.3
title: Singleton
pagenum: 438; label: 13.7.4
title: Factory Method
pagenum: 439; label: 13.7.5
title: Observer
pagenum: 439; label: 13.7.6
title: Pattern Summary
pagenum: 441; label: 13.8
title: Summary
pagenum: 442; label: Chapter 14
title: A Case Study
pagenum: 444; label: 14.1
title: The Case Study
pagenum: 444; label: 14.1.1
title: The Problem Description
pagenum: 444; label: 14.2
title: Analysis And Design
pagenum: 445; label: 14.2.1
title: Discovering Classes
pagenum: 445; label: 14.2.2
title: Using CRC Cards
pagenum: 446; label: 14.2.3
title: Scenarios
pagenum: 447; label: 14.3
title: Class Design
pagenum: 449; label: 14.3.1
title: Designing Class Interfaces
pagenum: 449; label: 14.3.2
title: Collaborators
pagenum: 449; label: 14.3.3
title: The Outline Implementation
pagenum: 450; label: 14.3.4
title: Testing
pagenum: 454; label: 14.3.5
title: Some Remaining Issues
pagenum: 455; label: 14.4
title: Iterative Development
pagenum: 455; label: 14.4.1
title: Development Steps
pagenum: 455; label: 14.4.2
title: A First Stage
pagenum: 456; label: 14.4.3
title: Testing The First Stage
pagenum: 460; label: 14.4.4
title: A Later Stage Of Development
pagenum: 461; label: 14.4.5
title: Further Ideas For Development
pagenum: 462; label: 14.4.6
title: Reuse
pagenum: 463; label: 14.5
title: Another Example
pagenum: 463; label: 14.6
title: Taking Things Further
pagenum: 464; title: Appendices; label: A
title: Working With A BlueJ Project
pagenum: 465; label: B
title: Java Data Types
pagenum: 468; label: C
title: Operators
pagenum: 471; label: D
title: Java Control Structures
pagenum: 474; label: E
title: Running Java Without BlueJ
pagenum: 480; label: F
title: Using The Debugger
pagenum: 483; label: G
title: JUnit Unit-Testing Tools
pagenum: 487; label: H
title: Teamwork Tools
pagenum: 489; label: I
title: Javadoc
pagenum: 491; label: J
title: Program Style Guide
pagenum: 494; label: K
title: Important Library Classes
pagenum: 498; title: Index
pagenum: 502