0% found this document useful (0 votes)
47 views26 pages

TMP 1436678652

Object-oriented programming (OOP) organizes programs as sets of interacting objects, defined by classes that encapsulate attributes and methods. Key concepts include encapsulation, inheritance, message passing, and polymorphism, which facilitate modeling real-world entities and behaviors. OOP promotes code reusability and a structured approach to software development through the use of classes and objects.

Uploaded by

ezradmongalaku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views26 pages

TMP 1436678652

Object-oriented programming (OOP) organizes programs as sets of interacting objects, defined by classes that encapsulate attributes and methods. Key concepts include encapsulation, inheritance, message passing, and polymorphism, which facilitate modeling real-world entities and behaviors. OOP promotes code reusability and a structured approach to software development through the use of classes and objects.

Uploaded by

ezradmongalaku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Object-Oriented Programming

Overview
Object-oriented programming (OOP) is a way to organize
and conceptualize a program as a set of interacting objects.

In the overview section, we will get an introduction to:

Key Object-Oriented Systems concepts


Software Lifecycle Basics
OOA/OOD basic tools
Module Map
Key Object-Oriented Systems Concepts
Objects and Classes
Encapsulation
Methods and Variables
Inheritance
Message Passing and Polymorphism
Basic Software Lifecycle Concepts
Introduction to OOA/OOD
Object-Oriented Programming

Object-oriented programming (OOP) is a way to organize and


conceptualize a program as a set of interacting objects.

The programmer defines the types of objects that will


exist.
The programmer creates object instances as they are
needed.
The programmer specifies how these various object will
communicate and interact with each other.
What is an Object?
Real-world objects have attributes and behaviors.
behaviors

Examples:
Dog
Attributes: breed, color, hungry, tired, etc.
Behaviors: eating, sleeping, etc.
Bank Account
Attributes: account number, owner, balance
Behaviors: withdraw, deposit
Software Objects
Writing software often involves creating a computational model
of real-world objects and processes.

Object-oriented programming is a methodology that gives programmers tools


to make this modeling process easier.
Software objects, like real-world objects, have attributes and behaviors.
Your best bet is to think in terms as close as possible to the real world; trying
to be tricky or cool with your system is almost always the wrong thing to do
(remember, you can’t beat mother nature!)
Software Objects - Cont’d
In traditional programming languages (Fortran,
Cobol, C, etc)
data structures and
In object-oriented procedures areBank
languages,
languages defined
separately.
they are defined together.
Account
An object is a collection
of attributes and the Account
behaviors that operate on
them. Account
Variables in an object are number:
called attributes.
attributes
balance:
Procedures associated with
an object are called methods. deposit()
withdraw
()
Classes

The definitions of the attributes and methods of an object are


organized into a class.
class Thus, a class is the generic definition
for a set of similar objects (i.e. Person as a generic definition
for Jane, Mitch and Sue)

A class can be thought of as a template used to create a set


of objects.
A class is a static definition; a piece of code written in a
programming language.
One or more objects described by the class are instantiated
at runtime.
The objects are called instances of the class.
Classes - Cont’d

Each instance will have its own distinct set of attributes.


Every instance of the same class will have the same set
of attributes;
every object has the same attributes but,
each instance will have its own distinct values for those
attributes.
Bank Example
The "account" class describes the attributes
and behaviors of bank accounts.
The “account” class defines two state class: Account
variables (account number and balance) and
two methods (deposit and withdraw).
number:

balance:

deposit()

withdraw()
Bank Example - Cont’d
When the program runs there will be many
Instance #1
instances of the account class.
Each instance will have its own account number: 054
number and balance (object state)
Methods can only be invoked . balance: $19

Instance #2

number: 712

balance: $240

Instance #3

number: 036

balance: $941
Encapsulation
When classes are defined, programmers can specify that
certain methods or state variables remain hidden inside the
class.

 These variables and methods are Visible


accessible from within the class, Methods
Hidden
but not accessible outside it. State
 The combination of collecting all Variables
and
the attributes of an object into a Methods
single class definition, combined
with the ability to hide some Visible
definitions and type information Variables
within the class, is known as
encapsulation. Class
Definition
Graphical Model of an Object
Instance balance()
variables

withdraw() theBalance deposit()


acctNumber

Methods
accountNumber()

State variables make up the nucleus of the object. Methods surround and hide
(encapsulate) the state variables from the rest of the program.
Instance Methods and
Instance Variables
The methods and variables described in this module so far
are
know as instance methods and instance variables.

These state variables are associated with the one


instance of a class; the values of the state variables may
vary from instance to instance.
Instance variables and instance methods can be public or
private.
It is necessary to instantiate (create an instance of) a
class to use it’s instance variables and instance methods.
Class Methods and Class
Variables
In addition to instance methods and instance variables,
classes
can also define class methods and class variables.

These are attributes and behaviors associated with the


class as a whole, not any one instance.
Class variables and class methods can be public or
private.
It is not necessary to instantiate a class to use it’s class
variables and class methods.
Class Variables

A class variable defines an attribute of an entire class.


instanc
e variab
In contrast, an instance variable defines an attribute of a
single instance of a class. les

Account
class
variable count: 3 num: 036
num: 054 num: 712
bal: $19 bal: $240 bal: $941
printCoun
Class t()
method
Inheritance

The advantage of making a new class a subclass is that it will


inherit attributes and methods of its parent class (also called
the superclass).

Subclasses extend existing classes in three ways:


By defining new (additional) attributes and methods.
By overriding (changing the behavior) existing attributes and
methods.
By hiding existing attributes and methods.
Subclasses
When a new class is developed a programmer can define it to
be a subclass of an existing class.
Subclasses are used to define special cases, extensions, or other variations
from the originally defined class.

Examples:
Generic Class Terrier is
 Terrier can be defined for Dog derived
as a subclass of Dog. With general
from Dog
Specific Class
 SavingsAccount and
attributes and
behaviors for all for Terrier
CheckingAccount can dogs. With new
be derived from the attributes and
Account class (see behaviors
specific to the
following slides). Terrier breed.
New Account Types - Cont’d
Suppose we define SavingsAccount and CheckingAccount
as two new subclasses of the Account class.

class SavingsAccount 
class Account { extends Account {
method acctNum() method rate() {…} 
{…}  }
method balance()
{…}
method deposit() class
{…} CheckingAccount 
method withdraw() extends Account {
{…} method withdraw()
} {…} 
}
New Account Types - Cont’d
Account SavingsAccount CheckingAccount

acctNum() acctNum() acctNum()


balance() balance() balance()
deposit() deposit() deposit()
withdraw() withdraw() withdraw()

rate() withdraw()

No new code has to be written for deposit() and


other methods, they are inherited from the
superclass.
Messages
Messages are information/requests that objects send to
other objects (or to themselves).
Message components include:
The name of the object to receive the
message.
The name of the method to perform.
Any parameters needed for the method.

Manager Employee

Message
To: Employee
Method: getHired
Parameters: salary = $45,000, start_date =
10/21/99
Benefits of Messages

Message passing supports all possible interactions between


two objects.

Message passing is the mechanism that is used to invoke


a method of the object.
Objects do not need to be part of the same process or on
the same machine to interact with one another.
Message passing is a run-time behavior, thus it is not the
same as a procedure call in other languages (compile-
time).
The address of the method is determined dynamically at run
-time, as the true type of the object may not be known to the
compiler.
Polymorphism

Polymorphism is one of the essential features of an object-


oriented language; this is the mechanism of decoupling the
behavior from the message.

The same message sent to different types of objects


results in:
execution of behavior that is specific to the object and,
possibly different behavior than that of other objects
receiving the same message.
Example: the message draw() sent to an object of type
Square and an object of type Circle will result in different
behaviors for each object.
Polymorphism – Cont’d

There are many forms of Polymorphism in object-oriented


languages, such as:

True Polymorphism: Same method signature defined for


different classes with different behaviors (i.e. draw() for the
Classes Circle and Square)
Parametric Polymorphism: This is the use of the same
method name within a class, but with a different signature
(different parameters).
Overloading: This usually refers to operators (such as +,-,/,*,
etc) when they can be applied to several types such as int,
floats, strings, etc.
Overriding: This refers to the feature of subclasses that
replace the behavior of a parent class with new or modified
behavior.
OOP Concepts Summary

Object-oriented programming is a way of conceptualizing


a program as groups of objects that interact with one
another.
A class is a general template used to create objects.
The combination of collecting all the attributes of an
object into a single class definition, combined with the
ability to hide some definitions within the class, is known
as encapsulation.
Classes can also define class variables and class
methods which are attributes and methods associated
with the class as a whole.
Inheritance allows classes to “inherit” attributes and
methods from their base (parent) class. This provides a
clean mechanism for code re-use and extension.
The End

You might also like