Csc 205 java programming ii
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

CSC 205 – Java Programming II PowerPoint PPT Presentation


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

CSC 205 – Java Programming II

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


Csc 205 java programming ii

CSC 205 – Java Programming II

Lecture 1

Jan 9, 2002


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?


Oo vs procedural procedural

OO vs Procedural -- Procedural


Oo vs procedural oo

OO vs Procedural -- OO


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


Abstraction1

Abstraction


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


Encapsulation

Encapsulation


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)


Modularity

Modularity


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;

  • }

  • }


Csc 205 java programming ii

The Base Class: Account

public class Account {

// Instance variables

private double balance;

// Constructors

public Account(double initialBalance) {

balance = initialBalance;

}

public Account() {

balance = 0.0;

}

}


Csc 205 java programming ii

Writing a Subclass

  • A SavingsAccount object will contain two variables:

    • balance, and

    • interestRate


Csc 205 java programming ii

Writing a Subclass

  • Methods that can be applied to SavingsAccount objects:

    • getInterestRate

    • setInterestRate

    • deposit (inherited)

    • withdraw (inherited)

    • getBalance (inherited)

    • close (inherited)


Hierarchy part of relationship

Hierarchy: “part-of” relationship


Hierarchy is a relationship

Hierarchy: “is-a” relationship


Typing

Typing


Typing supports polymorphism

Typing Supports Polymorphism

Shape

//

Shape s = ShapeBuilder.getNextShape();

s.draw();

//

+draw()

Oval

Rectangle

+draw()

+draw()


Concurrency

Concurrency


Persistence

Persistence


  • Login