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

ObjectOrientedProgramming Converted

Object-oriented programming (OOP) organizes programs as sets of interacting objects, utilizing concepts such as classes, encapsulation, inheritance, and polymorphism. Classes serve as templates for creating objects, encapsulating attributes and methods, while inheritance allows subclasses to extend or modify behaviors of parent classes. Key features include message passing for object interaction and polymorphism, enabling different behaviors for the same message across different object types.

Uploaded by

tdg1lawxv
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)
2 views26 pages

ObjectOrientedProgramming Converted

Object-oriented programming (OOP) organizes programs as sets of interacting objects, utilizing concepts such as classes, encapsulation, inheritance, and polymorphism. Classes serve as templates for creating objects, encapsulating attributes and methods, while inheritance allows subclasses to extend or modify behaviors of parent classes. Key features include message passing for object interaction and polymorphism, enabling different behaviors for the same message across different object types.

Uploaded by

tdg1lawxv
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.

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 languages,
In object-oriented and procedures are defined
Bank
separately.
they are defined together.
Account
An object is a collection
of attributes and the Account
behaviors that operate Account
on them.
Variables in an object are number:
called attributes. balance:
Procedures associated with deposit()
an object are called
methods. withdraw
()
Classes

The definitions of the attributes and methods of an object are


organized into a 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, but not Methods
Hidden
accessible outside it. State
The combination of collecting all the Variable
s and
attributes of an object into a single class Methods
definition, combined with the ability to hide
some definitions and type information Visible
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

instanc
 A class variable defines an attribute of an entire class.
 In contrast, an instance variable defines an attributeeof
a single instance of a class. variable
s
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 as a for Dog derived
subclass of Dog. With general
from Dog

attributes and Specific Class


SavingsAccount and behaviors for all for Terrier
CheckingAccount can be dogs. With new
derived from the Account attributes and
class (see following slides). behaviors
specific to the
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()
{…}
class
method deposit()
CheckingAccount
{…}
extends Account {
method withdraw()
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