OOP-Lecture 03
OOP-Lecture 03
Programming
Dr. Mujeeb Ur Rehman
[email protected]
Recommended Books:
1.C++ How to Program ( Deitel & Deitel );
2.Object-Oriented Software Engineering By Jacobson, Christerson, Jonsson,
Overgaard
Hazrat/Sir Allama Muhammad Iqbal (R.A)
Object-Oriented
Programming (OOP)
Lecture No. 3
Abstraction
► Principle of abstraction:
► Attributes
- Name - Employee
ID
- Student Roll No - Designation
- Year of Study - Salary
- CGPA - Age
Example – Abstraction
Ali is a PhD student and teaches BS
students
► behaviour
- Study - DevelopExam
- GiveExam - TakeExam
- PlaySports - Eat
- DeliverLecture - Walk
Example – Abstraction
Student’s Perspective
► Attributes
- Name - Employee
ID
- Student Roll No - Designation
- Year of Study - Salary
- CGPA - Age
Example – Abstraction
Student’s Perspective
► behaviour
- Study - DevelopExam
- GiveExam - TakeExam
- PlaySports - Eat
- DeliverLecture - Walk
Example – Abstraction
Teacher’s Perspective
► Attributes
- Name - Employee
ID
- Student Roll No - Designation
- Year of Study - Salary
- CGPA - Age
Example – Abstraction
Teacher’s Perspective
► behaviour
- Study - DevelopExam
- GiveExam - TakeExam
- PlaySports - Eat
- DeliverLecture - Walk
Example – Abstraction
A cat can be viewed with different
perspectives
Engineer’s View
Driver’s View
Abstraction – Advantages
► Abstraction
provides the freedom to
defer implementation decisions by
avoiding commitment to details
Classes
(Class Name)
(Class Name)
(attributes)
Suppressed
(operations)
Form
Normal Form
Example – Graphical
Representation of Classes
Circle
center Circle
radius
draw Suppressed
computeArea Form
Normal Form
Example – Graphical
Representation of Classes
Person
name Person
age
gender Suppressed
eat Form
walk
Normal Form
Inheritance
► Besidesinherited characteristics, a
child may have its own unique
characteristics
Inheritance in Classes
► Ifa class B inherits from class A then it
contains all the characteristics
(information structure and behaviour) of
class A
► The parent class is called base class and
the child class is called derived class
► Besides inherited characteristics,
derived class may have its own unique
characteristics
Example – Inheritance
Person
Student Doctor
Teacher
Example – Inheritance
Shape
Line Triangle
Circle
Inheritance – “IS A” or
“IS A KIND OF” Relationship
Circle Triangle
radius Line angle
draw length draw
computeArea draw computeArea
Inheritance – Advantages
► Reuse
► Less redundancy
► Increased maintainability
Reuse with Inheritance
► Main purpose of inheritance is reuse
► We can easily add new classes by
inheriting from existing classes
Select an existing class closer to the
desired functionality
Create a new class and inherit it from the
selected class
Add to and/or modify the inherited
functionality
Example Reuse
Shape
color
coord
draw
rotate
setColor
Circle Triangle
radius Line angle
draw length draw
computeArea draw computeArea
Example Reuse
Person
name
age
gender
eat
walk