The Object of Java
The Revolution
Objects Centric Approach
Software Engineering Principles
Enhanced BlueJ Version
Table of Contents
Preface
Ordering Info
Sample Chapters
Exam Copy
About the Author
Teaching Resources
aw.com
Black Box?


AVAILABLE THIS SEPTEMBER: THE BLUEJ VERSION OF DAVID RILEY'S THE OBJECT OF JAVA
NEW ISBN : 0-321-12173-2

This version integrates the use of BlueJ through the presentation while maintaining the theme and approach of The Object of Java.


Explanation of BlueJ facilities for programming, testing and debugging are included along with these topical discussions. An appendix that demonstrates key BlueJ features is also included.

Table of Contents

Objects and Classes
1.1 Objects Everywhere
1.2 Objects in Software
1.3 Anatomy of a Software Class
1.4 The Difference Between Objects and Classes
1.5 Edit, Compile and Run
1.6 Programming with BlueJ
1.7 Introduction to Software Engineering
1.8 A Sample of Object-Oriented Software Development

Introduction to Java Objects

2.1 Syntax Diagrams
2.2 The Method Call
2.3 Instruction Sequences
2.4 Constructing and Assigning Objects
2.5 Swapping
2.6 Putting it Together in a Java Class
2.7 Programming by Contract
2.8 Comments
2.9 BlueJ Debugging

Introduction to Design & Implementation
3.1 Top-down Design - Refining Algorithms
3.2 Selecting Identifiers
3.3 A Second Design Example
3.4 A GUI Software Library
3.5 Calling Methods with Parameters
3.6 Import Declarations
3.7 Prototyping
3.8 Debugging with BlueJ and System.out.println
3.9 Summary

Methods
4.1 The Need for a Subprogram
4.2 Private Parameterless Methods
4.3 Using Parameters
4.4 Local Variables
4.5 Non-Void Methods
4.6 Debugging Methods
4.7 This
4.8 Introduction to Event Handling
4.9 Postcondition Notation
4.10 A Design Example Using AView

Numeric Processing

5.1 Primitive Types
5.2 Primitive Integer Data Types
5.3 Differences Between Primitives and References
5.4 Real Numbers (float and double types)
5.5 System.out.println Revisited
5.6 Mixed Type Numeric Expressions
5.7 Primitive Methods (including Math)
5.8 Constants (final)

Supplier Classes
6.1 Clients and Suppliers in Software
6.2 Another Client
6.3 Suppliers
6.4 Manipulating Suppliers with BlueJ
6.5 Scope and Lifetime
6.6 Class Interface Design Principles
6.7 Separating Read and Write Access
6.8 Method Overloading
6.9 char Data Type
6.10 Strings
6.11 ALabel (optional)

Logic and Selection
7.1 The if Instruction
7.2 Relational Expressions
7.3 Boolean Expressions
7.4 Conditional Evaluation
7.5 Predicates
7.6 Nesting if Instructions
7.7 Multi-way Selection
7.8 The switch Instruction
7.9 Software Testing
7.10 Logic and Programming (optional)
7.11 Assertions (optional)

Inheritance
8.1 Extends
8.2 Class Relations: contains_a and is_a
8.3 Specialization and Extension
8.4 protected Scope
8.5 Inheriting for Event Handling
8.6 Animating by Inheriting EventTimer (optional)
8.7 Design Example with Scrollbars and Text Fields (optional)
8.8 Summary

Inheritance Hierarchies and Polymorphism
9.1 Inheritance Hierarchies
9.2 Type Conformance
9.3 Subtype Polymorphism
9.4 Abstract Classes
9.5 The Object Class
9.6 Equality by Content and by Identity

Repetition
10.1 The while Loop
10.2 Counting Loops
10.3 Sentinel Loops
10.4 Loop Design Cautions
10.5 Nested Loops
10.6 The do loop
10.7 Loop Invariants
10.8 Looping and Event Handling
10.9 Testing and Loops

Containers
11.1 Containers of Objects
11.2 Generic Containers
11.3 Type Safety, Casting, and InstanceOf
11.4 Wrapper Classes
11.5 Lists
11.6 List Traversal
11.7 Linear Searching
11.8 Sorting by Insertion

Introduction to Arrays
12.1 One-Dimensional Arrays
12.2 Keeping Indices in Bounds
12.3 Sequential Processing with for Loops
12.4 Treating Arrays in Aggregate
12.5 Tables
12.6 Arrays of Objects
12.7 Arrays and Objects
12.8 Sorting - the Selection Sort
12.9 TwoDdimensional Arrays

File Input and Output

13.1 Files
13.2 The Java File Class
13.3 I/O Exceptions
13.4 Input and Output
13.5 DataInputStream and DataOutputStream
13.6 Text Files
13.7 Terminal-Style I/O
13.8 Persistent Objects (optional)
13.9 JFileChooser (optional)

Recursion

14.1 Recursive Definition
14.2 From Recursive Definition to Method
14.3 Recursive Methods
14.4 Recursive Execution
14.5 Recursion and Repetition
14.6 More Complicated Forms of Recursion

Library Issues: Packages, Statics, Applets & Delegation
15.1 Creating Packages
15.2 Using Packages
15.3 Static Methods
15.4 Static Variables
15.5 Applications and Applets
15.6 Event Delegation (optional)

APPENDIXES

A- Intro to Computing Systems
A.1 What is a computer?
A.2 Analog or digital?
A.3 How is data stored?
A.4 What are binary numbers?
A.5 How do computers communicate?
A.6 Why are computers called "systems"?
B - Syntax Diagrams for Java
C - Java Operator Precedence
D - Swing, awt & aLibrary
D.1 Background on awt and swing
D.2 Transitioning Common Features
D.3 JFrame instead of AWindow
D.4 JLabel instead of ALabel
D.5 JComponent instead of AView, AOval, ARectangle and ARoundRectangle
D.6 JComponent instead of ALine
D.7 JComponent instead of AImage
D.8 Event Delegation - Handling Mouse Events
D.9 JButton instead of AButton
D.10 JScrollBar instead of AScrollbar
D.11 TextArea instead of ATextArea
D.12 JTextField instead of ATextField
E - UML Notations
E.1 Class Diagrams
E.2 Object Diagrams
E.3 Activity Diagrams
F – BlueJ Summary
F.1 Installation and Configuration
F.2 Working with Projects
F.3 Working with Classes
F.4 Testing and Debugging
Supplements
Source code, available online
Instructor’s Manual, available online
Solutions Manual, available online
Powerpoints, available online

 

 

 

Coming Soon!


© Copyright 2002 AW Higher Education Group, a division of Pearson Education, a Pearson plc company. All rights reserved. Legal disclaimer. E-mail webmaster@awl.com