0% found this document useful (0 votes)
36 views

Object-Oriented Programming (OOP) Lecture No. 6

The document discusses object-oriented programming concepts like classes, inheritance, polymorphism, and class compatibility. It provides examples to illustrate these concepts using classes like Shape, Circle, Triangle, File etc. Key points are that derived classes are subtypes that support the interface of base classes. Polymorphism allows different classes to respond differently to the same message. This allows flexibility and reusability in object-oriented systems.

Uploaded by

assada
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views

Object-Oriented Programming (OOP) Lecture No. 6

The document discusses object-oriented programming concepts like classes, inheritance, polymorphism, and class compatibility. It provides examples to illustrate these concepts using classes like Shape, Circle, Triangle, File etc. Key points are that derived classes are subtypes that support the interface of base classes. Polymorphism allows different classes to respond differently to the same message. This allows flexibility and reusability in object-oriented systems.

Uploaded by

assada
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 43

Object-Oriented Programming

(OOP)
Lecture No. 6
Class Compatibility
►A class is behaviorally compatible with
another if it supports all the operations of
the other class

► Such a class is called subtype

►A class can be replaced by its subtype


…Class Compatibility
► Derived class is usually a subtype of the
base class

► Itcan handle all the legal messages


(operations) of the base class

► Therefore, base class can always be


replaced by the derived class
Example – Class Compatibility
Shape
color
vertices
move
setColor
draw

Circle Triangle
radius Line angle
length
draw draw
computeArea draw computeArea
getLength
Example – Class Compatibility
File
size

open
print

ASCII File PS File


… PDF File …

print print
… print …

Polymorphism

► Ingeneral, polymorphism refers to


existence of different forms of a single
entity

► For example, both Diamond and Coal are


different forms of Carbon
Polymorphism in OO Model

► InOO model, polymorphism means that


different objects can behave in different
ways for the same message (stimulus)

► Consequently,sender of a message does


not need to know exact class of the receiver
Example – Polymorphism

draw Shape
View
draw

Line Circle Triangle


draw draw draw
Example – Polymorphism

print File
Editor
print

ASCII File PDF File PS File


print print print
Polymorphism – Advantages
► Messagescan be interpreted in different
ways depending upon the receiver class

draw Shape
View
draw

Line Circle Triangle


draw draw draw
Polymorphism – Advantages
► New classes can be added without changing
the existing model

draw Shape
View
draw

Square Line Circle Triangle


draw draw draw draw
Polymorphism – Advantages

► Ingeneral, polymorphism is a powerful tool


to develop flexible and reusable systems
Object-Oriented Modeling

An Example
Problem Statement
► Develop a graphic editor that can draw
different geometric shapes such as line,
circle and triangle. User can select, move or
rotate a shape. To do so, editor provides
user with a menu listing different
commands. Individual shapes can be
grouped together and can behave as a
single shape.
Identify Classes
 Extract nouns in the problem statement

► Develop a graphic editor that can draw


different geometric shapes such as line, circle
and triangle. User can select, move or rotate
a shape. To do so, editor provides user with a
menu listing different commands. Individual
shapes can be grouped together and can
behave as a single shape.
…Identify Classes
 Eliminate irrelevant classes

► Editor – Very broad scope

► User – Out of system boundary


…Identify Classes
 Add classes by analyzing requirements

► Group – required to behave as a shape


 “Individual shapes can be grouped together and
can behave as a single shape”

► View – editor must have a display area


…Identify Classes
 Following classes have been identified:

► Shape • Group
► Line • View
► Circle
► Triangle
► Menu
Object Model – Graphic Editor

Shape Group

Line Menu

Circle
View

Triangle
Identify Associations
 Extract verbs connecting objects

• “Individual shapes can be grouped


together”
 Group consists of lines, circles, triangles
 Group can also consists of other groups
(Composition)
… Identify Associations
 Verify access paths

► View contains shapes


 View contains lines
 View contains circles
 View contains triangles
 View contains groups
(Aggregation)
… Identify Associations
 Verify access paths

► Menu sends message to View


(Simple One-Way Association)
Object Model – Graphic Editor

Menu View Shape


nn
nn

nn nn nn
Line nn Circle Triangle Group
nn
nn nn
Identify Attributes
 Extract properties of the object
 From the problem statement

► Properties are not mentioned


…Identify Attributes
 Extract properties of the object
 From the domain knowledge

• Line • Triangle
– Color – Color
– Vertices – Vertices
– Length – Angle
• Circle • Shape
– Color – Color
– Vertices – Vertices
– Radius
…Identify Attributes
 Extract properties of the object
 From the domain knowledge

• Group • Menu
– noOfObjects – Name
• View – isOpen
– noOfObjects
– selected
Object Model – Graphic Editor

Menu View Shape


name noOfObjects color
isOpen selected n vertices

n n n
Line n Circle Triangle Group
length radius angle noOfObjects
n
n
n
Identify Operations
 Extract verbs connected with an object

• Develop a graphic editor that can draw


different geometric shapes such as line,
circle and triangle. User can select, move
or rotate a shape. To do so, editor provides
user with a menu listing different
commands. Individual shapes can be
grouped together and can behave as a
single shape.
… Identify Operations
 Eliminate irrelevant operations

► Develop – out of system boundary

► Behave – have broad semantics


…Identify Operations
 Following are selected operations:

• Line • Circle
– Draw – Draw
– Select – Select
– Move – Move
– Rotate – Rotate
…Identify Operations
 Following are selected operations:

• Triangle • Shape
– Draw – Draw
– Select – Select
– Move – Move
– Rotate – Rotate
…Identify Operations
 Following are selected operations:

• Group • Menu
– Draw – Open
– Select – Select
– Move – Move
– Rotate – Rotate
…Identify Operations
 Extract
operations using domain
knowledge

• View
– Add – Select
– Remove – Move
– Group – Rotate
– Show
View
Menu noOfObjects Shape
selected
name color
isOpen vertices
add()
remove()
open() n draw()
group()
select() select()
show()
move() move()
select()
rotate() rotate()
move()
rotate() n

n n
Line n Triangle Group
n
length angle noOfObjects
Circle
n
draw() radius draw() draw()
n
n draw()
Identify Inheritance

 Search “is a kind of” by looking at keywords


like “such as”, “for example”, etc

• “…shapes such as line, circle and triangle…”


– Line, Circle and Triangle inherits from Shape
…Identify Inheritance

 By analyzing requirements

► “Individual
shapes can be grouped together
and can behave as a single shape”
 Group inherits from Shape
Refining the Object Model
► Applicationof inheritance demands an
iteration over the whole object model

► In the inheritance hierarchy,


 All attributes are shared
 All associations are shared
 Some operations are shared
 Others are overridden
…Refining the Object Model

 Share associations

► View contains all kind of shapes

► Group consists of all kind of shapes


…Refining the Object Model

 Share attributes

► Shape – Line, Circle, Triangle and Group


 Color, vertices
…Refining the Object Model

 Share operations

► Shape – Line, Circle, Triangle and Group


 Select
 Move
 Rotate
…Refining the Object Model

 Sharethe interface and override


implementation

► Shape – Line, Circle, Triangle and Group


 Draw
View
Menu noOfObjects Shape
selected
name color
isOpen vertices
add()
remove()
open() nn draw() nn
group()
select() select()
show()
move() move()
select()
rotate() rotate()
move()
rotate()

Line Circle Triangle Group


length radius angle noOfObjects

draw() draw() draw() draw()


View
Menu noOfObjects Shape
selected
name color
isOpen vertices
add()
remove()
open() n draw()
group()
select() select()
show()
move() move()
select()
rotate() rotate()
move()
rotate() n

n n
Line n Triangle Group
n
length angle noOfObjects
Circle
n
draw() radius draw() draw()
n
n draw()

You might also like