[go: up one dir, main page]

0% found this document useful (0 votes)
23 views30 pages

02 OOP Intro

Object-oriented programming (OOP) maps real world problems to objects that have state, behavior, and identity. OOP uses classes to define common properties and behaviors for objects, and objects communicate by sending messages. Key OOP concepts include abstraction, encapsulation, inheritance, and polymorphism which help make programs more robust, adaptable, and reusable.

Uploaded by

hanguyenb1a4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views30 pages

02 OOP Intro

Object-oriented programming (OOP) maps real world problems to objects that have state, behavior, and identity. OOP uses classes to define common properties and behaviors for objects, and objects communicate by sending messages. Key OOP concepts include abstraction, encapsulation, inheritance, and polymorphism which help make programs more robust, adaptable, and reusable.

Uploaded by

hanguyenb1a4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

OOP Concepts

Object-Oriented Programming
Outline

 What is object-oriented programming?


 Procedural vs. object-oriented programming
 OOP concepts

Readings:
 HFJ: Ch.2.

 GT: Ch.1.

OOP Concepts 2
What is OOP?
Engine
HouseBot
* SerialNumber
* ID - make
- name 1 uses *
+ forward()
+ washUp() + turnLeft()
+ cook() + turnRight()
+ cleanUp() + setPower()
 OOP
 Map your problem in the real world

 Define “things” (objects) which can either do something or


have something done to them
 Create a “type” (class) for these objects so that you don’t
have to redo all the work in defining an objects properties
and behavior
 An OO program: “a bunch of objects telling each other what to
do by sending messages”. (Smalltalk)

OOP Concepts 3
Procedural vs. Object-oriented

 Procedural program  Object-oriented program


 passive data  active data

Function 1 Function 2

Global data

Function 4 Function 3

OOP Concepts 4
Procedural vs. Object-oriented
Example
 Given a specification:

 Procedural solution?
 Object-oriented solution?

OOP Concepts 5
Procedural vs. Object-oriented
Example
 Procedural  Object-oriented

rotate(shapeNum) {
//make the shape
//...rotate 360o
}
playSound(shapeNum) {
//use shapeNum to look up
//...which AIF to play
//and play it
}

OOP Concepts 6
Procedural vs. Object-oriented
Example
Then comes a change to the specification:

 Procedural solution?
 Object-oriented solution?

OOP Concepts 7
Procedural vs. Object-oriented
Example
 Procedural  Object-oriented
playSound() has to change class Amoeba is added
playSound(shapeNum) {
// if the shape is not amoeba
//use shapeNum to look up
//...which AIF to play
//and play it
// else
//play amoeba .hif sound
}

OOP Concepts 8
Procedural vs. Object-oriented
Example
Then comes another change to the specification:

 Procedural solution?
 Object-oriented solution?

OOP Concepts 9
Procedural vs. Object-oriented
Example
 Procedural  Object-oriented
 rotate() is modified  class Amoeba is changed
 so is ALL the related code  the rest is NOT affected

rotate(shapeNum, xPt, yPt ) {


// if the shape is not amoeba
//calculate center point
//based on a rectangle
//then rotate
// else
//use xPt,yPt as
//the rotation point offset
//and then rotate
}

OOP Concepts 10
OOP solution

OOP Concepts 11
The goals of object-oriented design

 Robustness: software is capable of handling


unexpected inputs that are not explicitly defined for its
application.
 Nuclear plant control software

 Airplane control software

 Adaptability: software that can evolve over time in


response to changing conditions in its environment.
 Web browsers and Internet search engines typically

involve large programs that are used for many years.


 Reusability: the same code should be usable as a
component of different systems in various applications.
 Save time and money

OOP Concepts 12
Important OO concepts
encapsulation
 Abstraction
"P.I.E“
 Objects & Class triangle
 Object state and behavior abstraction

 Object identity

 Messages inheritance polymorphism


 Encapsulation
 Information/implementation hiding

 Inheritance
 Polymorphism

OOP Concepts 13
Abstraction

 Abstraction: to distill a complicated system down to


its most fundamental parts and describe these parts
in a simple, precise language.
 naming the parts

 explaining their functionality

 Examples:
 Design of data  abstract data types (ADT)

OOP Concepts 14
Abstraction
Sue’s car:
Fuel: 20 liter
Speed: 0 km/h
License plate: “143 WJT” Automobile:

• fuel
Martin’s car:
• speed
Fuel: 49.2 liter Abstraction
Speed: 76 km/h • license plate
License plate: “947 JST”
• speed up
• slow down
Tom’s car: • stop
Fuel: 12 liter
Speed: 40 km/h
License plate: “241 NGO”

OOP Concepts 15
Objects

 An object has
 State

 Changes over time


 Behavior
 What the object does in response to messages
 Identity
 What makes the object unique

OOP Concepts 16
State

 Given by object’s attributes

Dave Brett
Age: 32 Age: 35
Height: 6’ 2” Height: 5’ 10”

Gary
Age: 61
Height: 5’ 8”

OOP Concepts 17
Behavior

 What the object can do responding to a message.

Get the mail.


Cook dinner.

OOP Concepts 18
Identity

 Something to distinguish between objects.

Okay, which one of


you wise guys is the I am the great
real Poppini? Poppini. De great Poppini at-
a your service.
I am the great
Poppini!
No, I’m the great
I’m the great Poppini.
Poppini!

OOP Concepts 19
Classes

 Define the properties and behavior of objects


 Can have behavior and properties that are defined
in the class but are independent of the individual
objects

OOP Concepts 20
Classes

instantiate

 Classes
 are the templates to create objects (instantiate).

 Each object has the same structure and behaviour as the


class from which it was created
 “Data type – Variable” relation
 Classes are what we design and code. Class definitions

make up programs.
 Objects are what are created (from a class) at run-time

OOP Concepts 21
Objects

instantiate

 State  Attributes / Instant variables


 Variables holding state information of the object

 Behavior  Methods
 Operations/services performed on the object.

OOP Concepts 22
Get the mail.
Messages Cook dinner.

myCar.accelerate(80);

 A means for object A to request object B to perform one method


of B’s.
 A message consists of:
 Handle of the destination object – host (myCar)

 Name of the method to perform (accelerate)

 Other necessary information – arguments (80)

 In effect, a message is a function call with the host object as the


implicit argument (method invocation)
 However, the concept of messages has great significance to
OOP:
Data become active!

OOP Concepts 23
Encapsulation
Wait. How’d he
do that?
…Two… Three. Where’s the
And Abracadabra, bunny gone?
the rabbit is gone!

OOP Concepts 24
class Car {
public void setSpeed(…) {
Encapsulation / // check validity
// set new values
Information hiding ...
}
...
 Encapsulation: private double speed;
to group related things together }

 Functions/procedures encapsulate instructions

 Objects encapsulate data and related procedures

 Information hiding: encapsulate to hide


internal implementation details from outsiders
 Outsiders see only interfaces

 Programmers have the freedom in implementing

the details of a system.


 Hence, the ability to make changes to

an object’s implementation without affecting


other parts of the program

OOP Concepts 25
Inheritance
Mom’s eyes
Dad’s smile

Mom’s love
Dad’s sports
of ROCK
obsession

OOP Concepts 26
Shape what all 4 subclasses

Inheritance inheritance
superclass
rotate()
playSound()
have in common

subclasses

Square Circle Triangle Amoeba


rotate() {

 “is-a” relations }
// code to rotate
// amoeba only

playSound() {
 The general classes can be overriding
// code to play music
// amoeba-specific

specialized to }

more specific classes


 Reuse of interfaces & implementation
 Mechanism to allow derived classes to possess attributes
and operations of base class, as if they were defined at
the derived class
 We can design generic services before specialising them

OOP Concepts 27
Polymophism Jump!

Polymorphism:
 "more than one form"

Object polymorphism:
 Different types of objects can respond to the same message.
And they can respond differently.
 Example: the square and the amoeba both can receive
message rotate(), they respond by doing different things.

OOP Concepts 28
OOP languages

 Some OOP features can be implemented in C or other


procedural programming languages, but not enforced by
these languages
 OOP languages: OOP concepts are embeded in and enforced
by the languages.
 OOP languages vary in degrees of object-oriented
 Pure: Smalltalk, Eiffel, Ruby, JADE..

 Original OO plus some procedural features: Python, Java

(very high), C++ (mixed), C#..


 OO features as extension: VB.NET, Fortran 2003, PHP,

Perl..

OOP Concepts 29
Example

OOP Concepts 30

You might also like