Object of Java, The: Introduction to Programming Using Software Engineering Principles, 2/E
0321331583

David D. Riley, University of Wisconsin, LaCrosse

Publisher: Addison-Wesley
Copyright: 2006
Format: Paper Bound w/CD-ROM; 880 pp

ISBN-10: 0321331583
ISBN-13:9780321331588

Our Price: £45.99
Status: Instock
Published: 07 Oct 2005



Description

The Object of Java takes an "objects-centric" approach to problem solving and programming using Java. This new edition takes full advantage of the new features of Java 5.0, and has replaced the use of the aLibrary package with increased emphasis on awt and swing. 

 

This book takes an objects first approach, and also focuses on the skills and discipline of software engineering that are needed for good programming.  Since specifications are critical for conveying code behavior in the object-oriented model, discussions of method preconditions and postconditions, and class invariants are used consistently to document examples and to define example classes.  It also uses the notion of patterns to identify numerous expressions, instructions, algorithms and designs that serve to pattern program segments.

 


Table Of Contents
Contents

Preface

Preface for the Student

Chapter 1 - 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 Introduction to Software Engineering

1.7 A Sample of Object-Oriented Software Development

 

Chapter 2 - 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 Coding Patterns and Swapping

2.6 Putting It Together in a Java Class

2.7 Programming by Contract

2.8 Comments

2.9 Observing Execution

2.10 Refining Algorithms–Divide and Conquer

2.11 Selecting Identifiers

2.12 A Second Example of Refinement

2.13 Calling Methods with Parameters

 

Chapter 3 - Introduction to Design and Implementation

3.1 Introduction to Standard Classes

3.2 Import Declarations

3.3 javax.swing.JFrame

3.4 java.awt.Label

3.5 Nonstandard Classes (Rectangle, Oval, and Line)

3.6 Prototyping

3.7 Debugging: Commenting Out Code and Using System.out.println

 

Chapter 4 - 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 Standard Non-Void Methods

4.7 Introduction to Event Handling

4.8 Postcondition Notation

4.9 java.awt.Container–A Design Example

 

Chapter 5 - Primitive Data

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)

5.9 Numeric Expression Patterns

5.10 char Data Type

5.11 Design Example–Dynamic Histogram

 

Chapter 6 - Supplier Classes

6.1 Clients and Suppliers in Software

6.2 Another Client

6.3 Suppliers

6.4 Scope and Lifetime

6.5 Class Interface Design Principles

6.6 Separating Read and Write Access

6.7 Method Overloading

6.8 this

6.9 Enumerated Data Types

6.10 String

6.11 JTextField (Optional)

 

Chapter 7 - 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 The Use of implies

7.7 Nesting if Instructions

7.8 Multiway Selection

7.9 The switch Instruction

7.10 Software Testing

7.11 Logic and Programming (Optional)

7.12 Assertions Revisited

 

Chapter 8 - Inheritance

8.1 Extends

8.2 Class Relations: contains_a and is_a

8.3 Specialization and Extension–javax.swing.JComponent

8.4 Protected Scope

8.5 Inheriting for Event Handling

8.6 Animating by Inheriting EventTimer (Optional)

8.7 Design Example with Sliders and Text Fields (Optional)

8.8 Summary

 

Chapter 9 - 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

9.7 Using Interfaces

 

Chapter 10 - 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 The for Loop

10.8 Loop Invariants

10.9 Looping and Event Handling

10.10 Testing and Loops

 

Chapter 11 - Containers

11.1 Containers

11.2 Generic Containers

11.3 Wrapper Classes and Autoboxing/Unboxing

11.4 Lists

11.5 List Traversal

11.6 Linear Searching

11.7 Sorting by Insertion

11.8 Generic Sorting (Optional)

 

Chapter 12 - 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 with Reference Items

12.7 Arrays and Objects

12.8 Sorting–the Selection Sort

12.9 Two-Dimensional Arrays

 

Chapter 13 - 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 (Optional)

13.8 Persistent Objects (Optional)

13.9 JFileChooser (Optional)

 

Chapter 14 - 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

 

Chapter 15 - Applications and Applets

15.1 static Variables

15.2 static Methods

15.3 Applications

15.4 Applets

15.5 Creating Packages (Optional)

15.6 Using Packages

 

Appendix A Introduction to Computing Systems

Appendix B Java Syntax Diagrams

Appendix C Precedence of Java Operations

Appendix D Library Software

Appendix E UML Notation

Appendix F Programming Using Windows

 

Index

Features

.

  • Emphasizes the Software Engineering skills necessary to be a good programmer.

 

  • Uses standard awt and swing classes.

 

  • Takes advantage of the new features of Java 5.0 including integration of standard container classes, enumerated types, autoboxing, and generic types.

 

  • Inheritance introduced early and covered in later chapters. 

 

  • Software Engineering Hint boxes offer a collection of software developer "best practices" such as how to format a language construct for good programming style, or the way that good programmers approach a common design problem.

 

  • Makes extensive use of the Unified Modeling Language (UML) for diagramming notation.  Using UML diagrams expose students to the same notations that have now become standard in the software development industry.

New To This Edition
  • Uses standard awt and swing classes.

 

  • Takes full advantage of the new features of Java 5.0 including complete coverage of built-in container classes in Java 5.0, enumerated types, automatic boxing and unboxing, enhanced for loop, generic types, and variable length parameter list.

 

  • Inheritance introduced early and covered in later chapters. 

Student Supplements
CS Support-Student Support Material
Addison-Wesley
© 2008 | Addison-Wesley | On-line Supplement | Available
ISBN-10: 0321446852 | ISBN-13: 9780321446855
The "CS Support" Website is a central repository for additional supplemental items that students and general reader will find useful when working with this textbook. The material for each book varies, but may include such items as: Source Code files, Figures from the book, Answers to some review questions, etc.. To see what items are available for this textbook, visit http://www.aw.com/cssupport.


Instructor Supplements
Online Powerpoint Figure Slides, 2/E
Riley
© 2006 | Addison-Wesley | On-line Supplement | Available
ISBN-10: 0321336003 | ISBN-13: 9780321336002

Online Solutions, 2/E
Riley
© 2006 | Addison-Wesley | On-line Supplement | Available
ISBN-10: 0321336011 | ISBN-13: 9780321336019

Online Source Code, 2/E
Riley
© 2006 | Addison-Wesley | On-line Supplement | Available
ISBN-10: 0321336038 | ISBN-13: 9780321336033