Object-Oriented Programming
(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
• Ali’s name is stored within his brain
• We can’t access his name directly
• Rather we can ask him to tell his name
Example – Information Hiding
• A phone stores several phone numbers
• We can’t 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 don’t 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 don’t 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