Upload
monica-norton
View
234
Download
3
Tags:
Embed Size (px)
Citation preview
Object Oriented Programming
A new way of thinking
Programming Methodologies
• Two approaches to programming design:– Procedural• Fortran, assembly, C
– Object-oriented• C++, Java, Python
Procedural Programming
• Focus is on algorithm: – Program is built by combining algorithms– Data is just what algorithms work on
• Issues?
Procedural Programming
• Issues?– Organization – Modularity
Objects
• Objects : Code entities uniting data and behavior
Objects
• Objects : Code entities uniting data and behavior
• Object Oriented Programming (OOP): Program consists of interacting objects
Objects
• Objects : Code entities uniting data and behavior
• Object Oriented Programming (OOP): Program consists of interacting objects
• Object-oriented design (OOD):– Identify objects– Determine how objects need to interact
Real World Objects
Objects A pen A computer keyboard A shoe A mouse
Real World Objects
Objects Non-objects A pen The upper 37% of the pen A computer keyboard The air above the keyboard A shoe The color of the shoe A mouse The sound of a mouse click
Real World Objects
Objects Non-objects A pen The upper 37% of the pen A computer keyboard The air above the keyboard A shoe The color of the shoe A mouse The sound of a mouse click
• An object holds together as a single whole
• An object has properties
• An object can do things and can have things done to it
Code Objects
• Model real world objects & conceptual entities
• 3 Key Things:– state : it has various properties (data)– behavior : things it can do things and that can be
done to it– identity : each object is a distinct individual
Ex: Circle
• State : – Radius– X of center?– Y of center?
• Behaviors : – getArea()
Procedural Version
• Circles represented as double:
• Functions to operate on circles:
Procedural Version
• Circles represented as struct:
• Functions to operate on circle struct:
Classes
• Classes are blueprints for objects– Define the basic form
C++ Classes
• class keyword defines a new type
• Defines members – Variables – Functions
Instantiation
• Individual objects are instantiated from the class description:
Class Name: Circle Data Fields:
radius is _______ Functions:
getArea
Circle Object 1 Data Fields:
radius is 10
Circle Object 2 Data Fields:
radius is 25
Circle Object 3 Data Fields:
radius is 125
A class template
Three objects of the Circle class
Using Classes
• Class is data type• Variable stores object
. operator accesses members Each object has own state
c1
radius: 10
c2
radius: 25
c3
radius: 125
Writing Behaviors
• Object's properties available in member functions
c1.getArea()getArea uses c1's radius
c2.getArea()getArea uses c2's radius