Object-Oriented
Programming (OOP)
Lecture No. 1
Course Objective
Objectiveof this course is to make
students familiar with the concepts of
object-oriented programming
Concepts
will be reinforced by their
implementation in C++
Course Contents
Object-Orientation
Objects and Classes
Overloading
Inheritance
Polymorphism
Generic Programming
Exception Handling
Introduction to Design Patterns
Books
C++ How to Program
By Deitel & Deitel
The C++ Programming Language
By Bjarne Stroustrup
Object-Oriented Software Engineering
By Jacobson, Christerson, Jonsson, Overgaard
Grading Policy
Assignments 15 %
Group Discussion 5%
Mid-Term 35 %
Final 45 %
Object-Orientation (OO)
What is Object-Orientation?
A technique for system modeling
OO model consists of several
interacting objects
What is a Model?
A model is an abstraction of something
Purposeis to understand the product
before developing it
Examples Model
Highway maps
Architectural models
Mechanical models
Example OO Model
Example OO Model
Objects lives-in
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 (Ali, Car)
Something that can be apprehended
intellectually (Time, Date)
What is an Object?
An object has
State (attributes)
Well-defined behaviour (operations)
Unique identity
Example Ali is a Tangible
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