Chapter 7

Designing Classes


Chapter Goals

Choosing Classes

Cohesion

Cohesion

Coupling

Dependency Relationship between Purse and Coin Classes


High and Low Coupling between Classes


Accessor and Mutator Classes

Side Effect

Common Error: Can't Modify Primitive Type Parameters

Modifying a Numeric Parameter has No Effect on Caller


Preconditions

Preconditions

Postconditions

Static Methods

Static Fields

A Static Field and Instance Fields


Scope

Packages

Package
Purpose
Sample Class
java.lang
Language support
Math
java.util
Utilities
Random
java.io
Input and output
PrintStream
java.awt
Abstract Windowing Toolkit
Color
java.applet
Applets
Applet
java.net
Networking
Socket
java.sql
Database Access
ResultSet
javax.swing
Swing user interface
JButton
org.omg.CORBA
Common Object Request Broker Architecture
ORB

Placing Classes into Packages

Importing Packages

Package Names

Base Directories and Subdirectories for Packages