35
Object-Oriented Programming (OOP) CSC-2071 (3+1=4 Credits) Lecture No. 1 MBY

Object-Oriented Programming (OOP) CSC-2071 (3+1=4 Credits) Lecture No. 1 MBY

Embed Size (px)

Citation preview

Object-Oriented Programming (OOP)

CSC-2071 (3+1=4 Credits)

Lecture No. 1

MBY

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 ProgramBy Deitel & Deitel

Java 2--Complete ReferenceBy Herbert Schildt

Object-Oriented Software EngineeringBy Jacobson, Christerson, Jonsson, Overgaard

Lecture Notes

Object-Orientation (OO)

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

• Objects– Ali– House– Car– Tree

• Interactions– Ali lives in the house– Ali drives the car

Ali

Car

House

Tree

lives-in

drives

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

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