25
Object-Oriented Object-Oriented Programming Basics Programming Basics Prof. Ankur Teredesai, Computer Science Department, RIT.

Object-Oriented Programming Basics

  • Upload
    quasar

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Object-Oriented Programming Basics. Prof. Ankur Teredesai, Computer Science Department, RIT. As time goes by. You must remember this, A kiss is still a kiss, A sigh is just a sigh, The fundamental things apply, As time goes by. - Herman Huupfeld “As time goes by”. - PowerPoint PPT Presentation

Citation preview

Page 1: Object-Oriented Programming Basics

Object-Oriented Object-Oriented Programming BasicsProgramming Basics

Prof. Ankur Teredesai,Computer Science

Department, RIT.

Page 2: Object-Oriented Programming Basics

As time goes byAs time goes byYou must remember this,

A kiss is still a kiss, A sigh is just a sigh,

The fundamental things apply, As time goes by.

- Herman Huupfeld“As time goes by”

Page 3: Object-Oriented Programming Basics

Classes and ObjectsClasses and Objects

Class<CAR>

Page 4: Object-Oriented Programming Basics

ObjectsObjects 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 5: Object-Oriented Programming Basics

Classes and ObjectsClasses and Objects

Object<7_series_BMW>

Object<Ford_Mustang>

Object<VW_Beetle>

Page 6: Object-Oriented Programming Basics

StateState 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 7: Object-Oriented Programming Basics

ExamplesExamples 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 8: Object-Oriented Programming Basics

Messages to ObjectsMessages to Objects

Object<7_series_BMW>

“Start the engine of

the BMW”Start_Engine

Page 9: Object-Oriented Programming Basics

Method of a ClassMethod of a Class

Class<CAR>

Start_Engine

Page 10: Object-Oriented Programming Basics

BehaviorBehavior 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 11: Object-Oriented Programming Basics

Types of MethodsTypes 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 12: Object-Oriented Programming Basics

IdentityIdentity 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 13: Object-Oriented Programming Basics

Assignment and EqualityAssignment 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 14: Object-Oriented Programming Basics

RelationshipsRelationships 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 15: Object-Oriented Programming Basics

RelationshipsRelationships 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 16: Object-Oriented Programming Basics

Therefore a Class is? 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 17: Object-Oriented Programming Basics

ClassClass 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 18: Object-Oriented Programming Basics

Class RelationshipsClass Relationships Consider for a moment the

following classes Flowers Daisies Red roses Yellow roses Petals

What observations can you make?

Page 19: Object-Oriented Programming Basics

Kinds of RelationshipsKinds 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 20: Object-Oriented Programming Basics

Kinds of Class Kinds of Class RelationshipsRelationships

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 21: Object-Oriented Programming Basics

InheritanceInheritance 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 22: Object-Oriented Programming Basics

Types of InheritanceTypes 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 23: Object-Oriented Programming Basics

Benefits of InheritanceBenefits 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 24: Object-Oriented Programming Basics

Views of a ClassViews 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 25: Object-Oriented Programming Basics

AccessAccess 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