csc 205 java programming ii n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CSC 205 – Java Programming II PowerPoint Presentation
Download Presentation
CSC 205 – Java Programming II

Loading in 2 Seconds...

play fullscreen
1 / 27

CSC 205 – Java Programming II - PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on

CSC 205 – Java Programming II. Lecture 1 Jan 9, 2002. Why OO ? The Big Picture. Software is inherently complex Complexity of the problem domain Difficulty of managing the development process Flexibility possible through software

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CSC 205 – Java Programming II' - neveah


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
why oo the big picture
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
examples of complex systems
Examples of Complex Systems

Mercer

  • A university

HR

Academics

Athletics

… …

CLA

Engr.

CSC

… …

Math

People

… …

Student

Employee

Graduate

UnderGrad

Admin.

Faculty

attributes of complex systems
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
bring order to chaos
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?
bring order to chaos cont d
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
elements of the object model
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
abstraction
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
abstraction 2
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
responsibility
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
message passing
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)
hierarchy
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++
subclassing in java
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;
  • }
  • }
slide19

The Base Class: Account

public class Account {

// Instance variables

private double balance;

// Constructors

public Account(double initialBalance) {

balance = initialBalance;

}

public Account() {

balance = 0.0;

}

}

slide20

Writing a Subclass

  • A SavingsAccount object will contain two variables:
    • balance, and
    • interestRate
slide21

Writing a Subclass

  • Methods that can be applied to SavingsAccount objects:
    • getInterestRate
    • setInterestRate
    • deposit (inherited)
    • withdraw (inherited)
    • getBalance (inherited)
    • close (inherited)
typing supports polymorphism
Typing Supports Polymorphism

Shape

//

Shape s = ShapeBuilder.getNextShape();

s.draw();

//

+draw()

Oval

Rectangle

+draw()

+draw()