I. Object-Oriented Program Design
The overall goal for designing a piece of software (a computer
program) is to correctly solve the given problem. At the same
time, this goal should encompass specifying and designing a
program that is understandable, can be adapted to changing
circumstances, and has the potential to be reused in whole or in
part. The design process needs to be based on a thorough
understanding of the problem to be solved.
Program Design
1. Read and understand a problem
description, purpose and goals.
2. Apply data
abstraction and encapsulation
3. Read and understand class
specifications and relations among the classes ("is-a", "has-a"
relationships).
4. Understand and implement a given
class hierarchy.
5. Identify reusable components from
existing code using classes and class libraries.
Class Design
1. Design and implement a class
2. Choose appropriate data
representation and algorithms.
3. Apply functional decomposition.
4. Extend a given class using
inheritance.
II. Program Implementation
The overall goals of program implementation parallel those of
program design. Classes
that fill common needs should be built so that they can be
reused easily in other
programs. Object-oriented design is an important part of program
implementation.
A. Implementation techniques
1. Methodology
a. Object-oriented development
b. Top-down development
c. Encapsulation and information hiding
d. Procedural abstraction
B. Programming constructs
1. Primitive types vs. objects
2. Declaration
a. Constant declarations
b. Variable declarations
c. Class declarations
d. Interface declarations
e. Method declarations
f. Parameter declarations
3. Console output (System.out.print/println)
4. Control
a. Methods
b. Sequential
c. Conditional
d. Iteration
e. Recursion
C. Java library classes (Including the AP Java
Subset)