28
Introduction to Object Oriented Programming

07 intro2 oop

Embed Size (px)

Citation preview

Page 1: 07 intro2 oop

Introduction to Object Oriented Programming

Page 2: 07 intro2 oop

• The goals:– Understand the concept of

1. object, 2. class,3. attribute, 4. operation, 5. constructor, 6. accessor and mutator,7. visibility, and8. encapsulation and information hiding.

– Able to build algorithm using OOP

Page 3: 07 intro2 oop

• We can distinguish the following learning curve of someone who learns to program:1. unstructured

programming,

2. modular programming, and

3. object-oriented programming. ?

Page 4: 07 intro2 oop

What is OOP?• In old style (unstructured and modular)

programming, you had:– data, which was completely passive– functions, which could manipulate any data.

• Meanwhile, in OOP you will have:– Objects and– communication among objects.

Page 5: 07 intro2 oop

1. OBJECT

• An object contains both data and methods that manipulate that data– An object is active, not

passive; it does things– An object is responsible for its

own data• But: it can expose that data to

other objects

• Each object can be viewed as an independent machine with a distinct role or responsibility. Operations are closely associated with the objects, carry their own operators around with them.

Page 6: 07 intro2 oop

2. CLASS

• An object contains both data and methods that manipulate that data– An object is active, not

passive; it does things– An object is responsible for its

own data• But: it can expose that data to

other objects

• Each object can be viewed as an independent machine with a distinct role or responsibility. Operations are closely associated with the objects, carry their own operators around with them.

Page 7: 07 intro2 oop

Classes and Objects

Object<7_series_BMW>

Object<Ford_Mustang>

Object<VW_Beetle>

Class<CAR>

Page 8: 07 intro2 oop

Objects

• The term object is not easily defined• According to Webster:– Object: a visible or tangible thing of relative stable

form; A thing that may be apprehended intellectually; A thing to which thought or action is directed

• In this class, we will use the following definition:– An object has state, behavior, and identity (Booch)

Page 9: 07 intro2 oop

State• The state of an object encompasses all of the (static) properties of the

object plus the current (dynamic) values of each of these properties• A property is an inherent or distinctive characteristic, trait, quality, or

feature that contribute to making an object uniquely that object• We will use the word attribute, or data member, to refer to the state of an

object

• State of the object Ford_Mustang is THIS COOL LOOKING RED Ford_Mustang.

• A property of THIS Mustang is its Color. • Attribute is another name for the property e.g.

color.

Page 10: 07 intro2 oop

Examples

• Properties ( Attributes ) : – Elevators travel up or down– Vending machines accept coins– Clocks indicate the current time

• Values– Current floor– Number of coins deposited– The number of minutes since the last hour

Page 11: 07 intro2 oop

Messages to Objects

Object<7_series_BMW>

“Start the engine of the BMW”

Start_Engine

Page 12: 07 intro2 oop

Method of a Class

Class<CAR>

Start_Engine

Page 13: 07 intro2 oop

Behavior

• Behavior is how an object acts and reacts, in terms of state changes and interactions with other objects.

• An operation is some action that one object performs upon another in order to elicit a reaction.

• We will use the word method to describe object behavior in java.

• Invoking a method causes the behavior to take place.

Page 14: 07 intro2 oop

Types of Methods

• There are 4 basic types of methods:– Modifier (sometimes called a mutator)

• Changes the value associated with an attribute of the object• E.g. A method like Change_Car_Color

– Accessor• Returns the value associated with an attribute of the object• E.g. A method like Price_of_Car

– Constructor• Called once when the object is created (before any other method will

be invoked)• E.g. Car(Mustang)

– Destructor• Called when the object is destroyed • E.g.~Car( )

Page 15: 07 intro2 oop

Identity

• Identity is the property of an object that distinguishes it from all other objects.

• The failure to recognize the difference between the name of the object and the object itself is the source of many errors in object-oriented (OO) programming.

Page 16: 07 intro2 oop

Assignment and Equality

• What does it mean to assign one object to another?– Copy the name only (shallow copy)– Duplicate the object, creating a different object (with a

different name) whose state and behavior is the same as the original (deep copy)

• Equality like assignment, can mean two things– Two names designate the same object– Two objects are different but their state and behavior are

the same

Page 17: 07 intro2 oop

Relationships

• Objects contribute to the behavior of a system by collaborating with one another– A car is a collection of parts like the Engine, Steering

Wheel, Wipers,Wheels each sending messages to each other so that the car can be driven!!

• The relationship between any two objects encompasses the assumptions that each makes about the other, including what operations can be performed and what behavior results from it.

Page 18: 07 intro2 oop

Relationships

• There are two kinds of relationships that are of particular interest.– Using relationship

• E.g. Owner uses the Car.

– Containing relationship• E.g. Car contains an Engine

Page 19: 07 intro2 oop

Therefore a Class is?

• According to Webster– A group, set, or kind marked by common

attributes or a common attribute• A class is a set of objects that share a common

structure and a common behavior– An object is a concrete entity that exists in space

and time, an instance of a class– A class represents only an abstraction, the essence

of an object from the class

Page 20: 07 intro2 oop

Class

• A class can be thought of as a cookie cutter, form which objects can be instantiated– A class is to an object, as a blueprint is to a building

• The class mammal represents the characteristics common to all mammals– Live birth, nurse young, have hair, …

• “Paul”, “PJ”, “Lisa”, “Heidi”, and “James” are specific instances from the class mammal

Page 21: 07 intro2 oop

Class Relationships

• Consider for a moment the following classes– Flowers– Daisies– Red roses– Yellow roses– Petals

• What observations can you make?

Page 22: 07 intro2 oop

Kinds of Relationships

• Classes, like objects, do not exist in isolation.• Relations between classes can be made for

one of two reasons.– To indicate some sort of sharing.• A yellow rose and a red rose are both roses and have

petals, roots, leaves, thorns, etc.– Some kind of semantic connection.• Daisies and roses are both flowers that are pollinated in

the same way.

Page 23: 07 intro2 oop

Kinds of Class Relationships

• There are three basic kinds of class relationships– Generalization (“kind of”)

• A rose is a kind-of a flower• Generalization provides the ability to create subclasses• Subclasses share the structure of the parent class

– Aggregation (“part of”)• A petal is part-of a rose• Aggregation allows one to construct new classes from existing one

– Association

Page 24: 07 intro2 oop

Inheritance

• The term, inheritance, is used in many object oriented (OO) programming languages to describe the generalization relationship

• Inheritance is a relationship where one class shares the structure or behavior defined in one class (single inheritance) or more (multiple inheritance)

Page 25: 07 intro2 oop

Types of InheritanceForm of Inheritance DescriptionSpecification The superclass defines behavior that is implemented in the

subclass but not in the superclass. Provides a way to guarantee that subclass implement the same behavior.

Specialization The subclass is a specialized form of the superclass but satisfies the specifications of the parent class in all relevant aspects.

Extension The subclass adds new functionality to the parent class, but does not change any inherited behavior.

Limitation The subclass restricts the use of some of the behavior inherited from the superclass.

Combination The subclass inherits features from more than one superclass (i.e. multiple inheritance).

Page 26: 07 intro2 oop

Benefits of Inheritance

• One view of inheritance is that it provides a way to specify some properties/behaviors that all subclasses must exhibit

• Inheritance can be used to re-use code• Inheritance also provides the ability to

generalize– A method can be written to work with the super-

class but subclasses can be passed as arguments

Page 27: 07 intro2 oop

Views of a Class

• A class can be viewed as a sort of contract that specifies what instances of the class can, and cannot do

• It is possible to distinguish between the outside and inside view of a class

• The interface of a class provides its outside view and emphasizes the abstraction

• The implementation of a class is its inside view

Page 28: 07 intro2 oop

Access

• Most classes provide three levels of access to their members (state and behavior):– Public

• The part of the class of the class that is visible to all clients of the class

– Protected• The part of the class that is only visible to subclasses of the class

– Private• A part of the class that is not visible to any other classes