Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 205 – Java Programming II

Similar presentations


Presentation on theme: "CSC 205 – Java Programming II"— Presentation transcript:

1 CSC 205 – Java Programming II
Lecture 1 Jan 9, 2002

2 Why OO? The Big Picture Software is inherently complex
Complexity of the problem domain Difficulty of managing the development process Flexibility possible through software Problems of characterizing the behavior of discrete systems

3 Examples of Complex Systems
Mercer A university HR Academics Athletics … … CLA Engr. CSC … … Math People … … Student Employee Graduate UnderGrad Admin. Faculty

4 Attributes of Complex Systems
Hierarchy: a collection of interrelated subsystems. Dividable until some lest level is reached Arbitrary criterion for choosing subsystems Cohesive and loosely coupled subsystems One component is in charge of certain tasks Intra-component communications are less frequent Common patterns among subsystems Evolved from existing simpler systems

5 Bring Order to Chaos The role of decomposition
The technique of mastering complexity has been known since ancient time: divide et impera (divide and rule) -- Dijkstra OO v.s. procedural decomposition procedural: top-down structure design with each component denote a major step in some overall process OO: viewing the world as a set of autonomous agents that collaborate to perform some higher level behavior Which is better?

6 OO vs Procedural -- Procedural

7 OO vs Procedural -- OO

8 Bring Order to Chaos – cont’d
The role of abstraction An individual can comprehend only about seven (7) chunks of information at one time! Ignore inessential details, deal with the generalized, idealized model of the object The role of hierarchy Object structure: illustrates how different objects collaborate with each other Class structure: highlights common structure and behavior within a system

9 Elements of the Object Model
Abstraction: model the essential attributes Encapsulation: hide implementation details Modularity: (think package in Java) Hierarchy: ranking/ordering of objects Typing*: enforcement of the class Concurrency*: distinguishes active object Persistence*: transcends time and/or space

10 Abstraction Idealized structure model of objects
Recognize similarities Ignore differences (for the time being) For a particular purpose Provide crisply defined conceptual bounders Distinguish an object from other kinds of objects

11 Abstraction

12 Abstraction (2) Characterize the behavior of an object
by considering the services it provides to other objects (or its responsibilities) (client-server) contract model from the outside view Works together with encapsulation Expose what an object can do and how to request for services (which constitute the behavior of an object) Hide implementation details

13 Encapsulation

14 Responsibility Responsibilities of an object include
State: information to store Implemented with variables in Java Operations: Implemented with methods in Java Preconditions: conditions assumed by operations Postconditions: conditions satisfied by operations Invoke operations by message passing

15 Message Passing Three components that comprise a message:
The object to which the message is addressed (YourBicycle) The name of the method to perform (changeGears) Any parameters needed by the method (lowerGear)

16 Modularity

17 Hierarchy Hierarchy is a ranking or ordering of abstractions
Two most important hierarchies The “part-of” relationship, or aggregation The “is-a” relationship , or inheritance Inheritance, also known as subclassing Single inheritance: the only legal way in Java Multiple inheritance: supported in C++

18 Subclassing in Java A subclass SavingsAccount:
public class SavingsAccount extends Account { private double interestRate; public double getInterestRate() { return interestRate; } public void setInterestRate(double rate) { interestRate = rate;

19 The Base Class: Account
public class Account { // Instance variables private double balance; // Constructors public Account(double initialBalance) { balance = initialBalance; } public Account() { balance = 0.0;

20 Writing a Subclass A SavingsAccount object will contain two variables:
balance, and interestRate

21 Writing a Subclass Methods that can be applied to SavingsAccount objects: getInterestRate setInterestRate deposit (inherited) withdraw (inherited) getBalance (inherited) close (inherited)

22 Hierarchy: “part-of” relationship

23 Hierarchy: “is-a” relationship

24 Typing

25 Typing Supports Polymorphism
Shape +draw() Oval Rectangle +draw() +draw() // Shape s = ShapeBuilder.getNextShape(); s.draw();

26 Concurrency

27 Persistence


Download ppt "CSC 205 – Java Programming II"

Similar presentations


Ads by Google