Object-Oriented Programming
(OOP)
Lecture No. 8
Course Objective
• Objective of this course is to make students
familiar with the concepts of object-oriented
programming
• Concepts will be reinforced by their
implementation in Java
• Project: (1) GUI + Database
(2) 3D Game design in Alice + Java
(3) Android Phone Programming
Course Contents
• Object-Orientation
• Objects and Classes
• Information Hiding
• Encapsulation
• Abstraction
• Inheritance
• Polymorphism
• Overloading vs Overriding
• General Java Programming
Books
Java Advanced How to Program
By Deitel & Deitel
Java 2--Complete Reference
By Herbert Schildt
Object-Oriented Software Engineering
By Jacobson, Christerson, Jonsson, Overgaard
Lecture Notes
What is Object-Orientation?
• A technique for system modeling
• OO model consists of several interacting
objects
OOP and POP
• Difference between object-oriented
programming and procedure oriented
programming
• pop is based on function and oops is based on
classes and objects.
• Repeation of Code/ No data reusability
• No data hiding capability
• No clear readability
What is a Model?
• A model is an abstraction of something
• Purpose is to understand the product before
developing it
Examples – Model
• Highway maps
• Architectural models
• Mechanical models
Example – OO Model
…Example – OO Model
lives-in
• Objects Ali House
– Ali
drives
– House
– Car
Car Tree
– Tree
• Interactions
– Ali lives in the house
– Ali drives the car
Object-Orientation - Advantages
• People think in terms of objects
• OO models map to reality
• Therefore, OO models are
– easy to develop
– easy to understand
What is an Object?
An object is
• Something tangible/Real (Ali, Car)
• Something that can be captured intelligently
(Time, Date)
… What is an Object?
An object has
• State (attributes)
• Well-defined behaviour (operations)
• Unique identity
• What is the relationship between a class and
an object?
• A class acts as a blue-print that defines the
properties, states, and behaviors that are
common to a number of objects.
Example – Ali is a Tangible/Real Object
• State (attributes)
– Name
– Age
• behaviour (operations)
– Walks
– Eats
• Identity
– His name
Example – Car is a Tangible Object
• State (attributes)
- Color
- Model
• behaviour (operations)
- Accelerate - Start Car
- Change Gear
• Identity
- Its registration number
Example – Time is an Object Apprehended
Intellectually
• State (attributes)
- Hours - Seconds
- Minutes
• behaviour (operations)
- Set Hours - Set Seconds
- Set Minutes
• Identity
- Would have a unique ID in the model
Example – Date is an Object Apprehended
Intellectually
• State (attributes)
- Year - Day
- Month
• behaviour (operations)
- Set Year - Set Day
- Set Month
• Identity
- Would have a unique ID in the model
Revision
• Object − Objects have states and behaviors. Example: A dog has
states - color, name, breed as well as behavior such as wagging
their tail, barking, eating. An object is an instance of a class.
• Class − A class can be defined as a template/blueprint that
describes the behavior/state that the object of its type supports.
• Methods − A method is basically a behavior. A class can contain
many methods. It is in methods where the logics are written,
data is manipulated and all the actions are executed.
• Instance Variables − Each object has its unique set of instance
variables. An object's state is created by the values assigned to
these instance variables.
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
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
Other 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
Basic features of OOPs
• Abstraction - Refers to the process of exposing
only the relevant and essential data to the
users without showing unnecessary
information.
• Polymorphism - Allows you to use an entity in
multiple forms.
• Encapsulation - Prevents the data from
unwanted access by binding of code and data
in a single unit called object.
Basic features of OOPs
• Inheritance - Promotes the reusability of code
and eliminates the use of redundant code.
• It is the property through which a child class
obtains all the features defined in its parent
class.
• Data reusability and Extensibility
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
Questions !