19
Object Oriented Programming A new way of thinking

Object Oriented Programming A new way of thinking

Embed Size (px)

Citation preview

Page 1: Object Oriented Programming A new way of thinking

Object Oriented Programming

A new way of thinking

Page 2: Object Oriented Programming A new way of thinking

Programming Methodologies

• Two approaches to programming design:– Procedural• Fortran, assembly, C

– Object-oriented• C++, Java, Python

Page 3: Object Oriented Programming A new way of thinking

Procedural Programming

• Focus is on algorithm: – Program is built by combining algorithms– Data is just what algorithms work on

• Issues?

Page 4: Object Oriented Programming A new way of thinking

Procedural Programming

• Issues?– Organization – Modularity

Page 5: Object Oriented Programming A new way of thinking

Objects

• Objects : Code entities uniting data and behavior

Page 6: Object Oriented Programming A new way of thinking

Objects

• Objects : Code entities uniting data and behavior

• Object Oriented Programming (OOP): Program consists of interacting objects

Page 7: Object Oriented Programming A new way of thinking

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

Page 8: Object Oriented Programming A new way of thinking

Real World Objects

Objects A pen A computer keyboard A shoe A mouse

Page 9: Object Oriented Programming A new way of thinking

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

Page 10: Object Oriented Programming A new way of thinking

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

Page 11: Object Oriented Programming A new way of thinking

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

Page 12: Object Oriented Programming A new way of thinking

Ex: Circle

• State : – Radius– X of center?– Y of center?

• Behaviors : – getArea()

Page 13: Object Oriented Programming A new way of thinking

Procedural Version

• Circles represented as double:

• Functions to operate on circles:

Page 14: Object Oriented Programming A new way of thinking

Procedural Version

• Circles represented as struct:

• Functions to operate on circle struct:

Page 15: Object Oriented Programming A new way of thinking

Classes

• Classes are blueprints for objects– Define the basic form

Page 16: Object Oriented Programming A new way of thinking

C++ Classes

• class keyword defines a new type

• Defines members – Variables – Functions

Page 17: Object Oriented Programming A new way of thinking

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

Page 18: Object Oriented Programming A new way of thinking

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

Page 19: Object Oriented Programming A new way of thinking

Writing Behaviors

• Object's properties available in member functions

c1.getArea()getArea uses c1's radius

c2.getArea()getArea uses c2's radius