Book Description

About the Author

Table of Contents

Source Code

Errata

Send Comments

Teaching Materials

Author's Homepage
 

Object-Oriented Software Development Using Java

Xiaoping Jia, Ph.D
Table of Contents
1 Object­Oriented Software Development

    1.1 Software Development
          1.1.1 An Engineering Perspective
          1.1.2 The Desirable Qualities of Software Systems
    1.2 A View of the World
    1.3 Principles and Concepts
          1.3.1 Classes and Objects
          1.3.2 Modularity
          1.3.3 Abstraction and Encapsulation
          1.3.4 Inheritance
          1.3.5 Association
          1.3.6 Modeling Dynamic Behavior
    1.4 Object­Oriented Development
          1.4.1 The Micro and Macro Processes
          1.4.2 Case Study - An On­Line Bookstore 

2 Introduction to Java
    2.1 The Architecture of Java
    2.2 Simple Programs
          2.2.1 A Simple App
          2.2.2 A Simple Applet

3 Elements of Java
    3.1 Lexical Elements
          3.1.1 Character Set
          3.1.2 Identifiers
          3.1.3 Primitive Types and Literals
          3.1.4 Operators and Expressions
    3.2 Variables and Types
          3.2.1 Variable Declarations
          3.2.2 Type Compatibility and Conversion
          3.2.3 Reference Types
          3.2.4 Arrays
    3.3 Statements
          3.3.1 Statement Labels
          3.3.2 Statement Blocks
          3.3.3 Simple Statements
          3.3.4 Compound Statements
          3.3.5 Multi­Level Breaking
    3.4 Class Declarations
          3.4.1 Class Syntax
          3.4.2 Creating and Initializing Objects
          3.4.3 Accessing Members
          3.4.4 Method Invocation and Parameter Passing
          3.4.5 Static Fields and Methods
          3.4.6 Object Reference this
          3.4.7 Interfaces and Abstract Classes
          3.4.8 Strings
          3.4.9 Wrapper Classes
    3.5 Packages
    3.6 Exceptions
    3.7 A Simple Animation Applet

4 Classes and Inheritance
    4.1 Overloading
    4.2 Inheritance
          4.2.1 Constructors of Extended Classes
          4.2.2 Subtypes and Polymorphism
          4.2.3 Overriding Methods
          4.2.4 Restriction
    4.3 Extending and Implementing Interfaces
    4.4 Hiding Fields and Static Methods
    4.5 Designing Classes
          4.5.1 Avoiding Public Fields
          4.5.2 Separating Interface From Implementation
          4.5.3 File Organization
          4.5.4 The Canonical Form
          4.5.5 Class Organization
          4.5.6 Documentation
          4.5.7 Unit Testing
    4.6 Applications --- Animation Applets
          4.6.1 Getting Parameters
          4.6.2 An Idiom for Animation
          4.6.3 Using Double­Buffering
          4.6.4 Reading Files In Applets

5 Design by Abstraction
    5.1 Design Patterns
    5.2 Designing Generic Components
          5.2.1 Factorization
          5.2.2 Generalization
          5.2.3 Abstract Coupling
    5.3 Design Case Study_ Sorting Animation
          5.3.1 The Initial Implementation
          5.3.2 Separating the Algorithms
          5.3.3 Separating the Display Strategies

6 Object­Oriented Application Frameworks
    6.1 Application Frameworks
    6.2 The Collections Framework
          6.2.1 Abstract Collections
          6.2.2 Interfaces of Abstract Collections
          6.2.3 Concrete Collections
          6.2.4 Iteration
          6.2.5 Ordering and Sorting
    6.3 The Graphical User Interface Framework
          6.3.1 The Widgets
          6.3.2 Layout Managers
          6.3.3 Handling Events
          6.3.4 Frames and Dialogs
    6.4 The Input/Output Framework
          6.4.1 The Byte Streams
          6.4.2 The Character Streams
          6.4.3 Random Access Files

7 Design Case Study: A Drawing Pad
    7.1 Iterative Development
    7.2 Iteration 1: A Simple Scribbling Pad
    7.3 Iteration 2: The Control Panel
    7.4 Iteration 3: The Drawing Tools
    7.5 Iteration 4: More Tools
          7.5.1 Handling The Keyboard Input
          7.5.2 Drawing Filled Shapes

8 Concurrent Programming
    8.1 Threads
          8.1.1 Creation of Threads
          8.1.2 Controlling Threads
    8.2 Thread Safety and Liveness
          8.2.1 Synchronization
          8.2.2 Cooperation Among Threads
          8.2.3 Liveness Failures
    8.3 Design Case Study: Tic­Tac­Toe Game

9 Distributed Computing
    9.1 Socket­Based Communication
          9.1.1 Design Case Studies
    9.2 Remote Method Invocation
          9.2.1 The Architecture
          9.2.2 Using RMI
          9.2.3 Design Case Studies


Book Description - About the Author - Table of Contents
Source Code - Errata - Send Comments
Teaching Materials - Author's Homepage