Object Oriented Programming (OOP) - CS304 Power Point Slides Lecture 02
Object Oriented Programming (OOP) - CS304 Power Point Slides Lecture 02
(OOP)
Lecture No. 2
Information Hiding
Information is stored within the object
It is hidden from the outside world
It can only be manipulated by the object
itself
Example Information Hiding
Alis name is stored within his brain
We cant access his name directly
Rather we can ask him to tell his name
Example Information Hiding
A phone stores several phone numbers
We cant read the numbers directly from the
SIM card
Rather phone-set reads this information for
us
Information Hiding
Advantages
Simplifies the model by hiding
implementation details
It is a barrier against change propagation
Encapsulation
Data and behaviour are tightly coupled
inside an object
Both the information structure and
implementation details of its operations are
hidden from the outer world
Example Encapsulation
Ali stores his personal information and
knows how to translate it to the desired
language
We dont know
How the data is stored
How Ali translates this information
Example Encapsulation
A Phone stores phone numbers in digital
format and knows how to convert it into
human-readable characters
We dont know
How the data is stored
How it is converted to human-readable
characters
Encapsulation Advantages
Simplicity and clarity
Low complexity
Better understanding
Object has an Interface
An object encapsulates data and behaviour
So how objects interact with each other?
Each object provides an interface
(operations)
Other objects communicate through this
interface
Example Interface of a Car
Steer Wheels
Accelerate
Change Gear
Apply Brakes
Turn Lights On/Off
Example Interface of a Phone
Input Number
Place Call
Disconnect Call
Add number to address book
Remove number
Update number
Implementation
Provides services offered by the object
interface
This includes
Data structures to hold object state
Functionality that provides required services
Example Implementation of
Gear Box
Data Structure
Mechanical structure of gear box
Functionality
Mechanism to change gear
Example Implementation of
Address Book in a Phone
Data Structure
SIM card
Functionality
Read/write circuitry
Separation of Interface &
Implementation
Means change in implementation does not
effect object interface
This is achieved via principles of information
hiding and encapsulation
Example Separation of
Interface & Implementation
A driver can drive a car independent of
engine type (petrol, diesel)
Because interface does not change with the
implementation
Example Separation of
Interface & Implementation
A driver can apply brakes independent of
brakes type (simple, disk)
Again, reason is the same interface
Advantages of Separation
Users need not to worry about a change
until the interface is same
Low Complexity
Direct access to information structure of an
object can produce errors
Messages
Objects communicate through messages
They send messages (stimuli) by invoking
appropriate operations on the target object
The number and kind of messages that can
be sent to an object depends upon its
interface
Examples Messages
A Person sends message (stimulus) stop
to a Car by applying brakes
A Person sends message place call to a
Phone by pressing appropriate button