Вы находитесь на странице: 1из 57

OBJECT BASICS (CH-2)

SCE, KIIT University

KIIT CSE/IT
(OOSD)
Topics to be Discussed
1. INTRODUCTION
2. AN OBJECT ORIENTED PHILOSOPHY
3. OBJECTS
4. CLASSES
5. OBJECT RESPONDS TO MESSAGES
6. OBJECT RELATIONSHIP AND ASSOCIATIONS
7. CONSUMER-PRODUCER ASSOCIATION
8. AGGREGATION AND OBJECT CONTAINMENT

KIIT CSE/IT
(OOSD)
1. INTRODUCTION

What is an object ?
Ans: A car is an object; a real world
entity , identifiably separate from its
surroundings.
Car has well defined attributes:
Color
Manufacturer
Cost
Owner
KIIT CSE/IT
(OOSD)
1. INTRODUCTION contd.
Car has well defined set of things we
do with it(i.e methods) :
Drive it
Lock it
Tow it
Carry passenger
What do object have to do with
system development ?

KIIT CSE/IT
(OOSD)
1. INTRODUCTION contd.
Properties or attributes describe the
state (data) of an object.
Methods (procedures) defines its
behavior.

KIIT CSE/IT
(OOSD)
2. AN OBJECT ORIENTED PHILOSOPHY

The difference comes among them


are :
The ease of description
Reusability
Extensibility
Readability
Computational efficiency
Ability to maintain the description

KIIT CSE/IT
(OOSD)
2. AN OBJECT ORIENTED
PHILOSOPHY contd.
It has been said that one should
speak:
English for business
German for engineering
Persian for poetry
A similar quip can be made for
programming languages.
Traditional languages were more
machine dependant
KIIT CSE/IT
(OOSD)
2. AN OBJECT ORIENTED
PHILOSOPHY contd.
Fundamental characteristic of OOP is that
it allows the base concepts of the language
to be extended to include ideas and terms
closer to those of its application.
New data types can be defined in terms of
existing data types.
FUNDAMENTAL DIFFERENCE BETWEEN THE
OBJECT ORIENTED SYSTEMS AND
TRADITIONAL SYSTEMS ARE:

KIIT CSE/IT
(OOSD)
2. AN OBJECT ORIENTED
PHILOSOPHY contd.
Traditional Systems:
Most traditional development
methodologies are either algorithm
centric or data centric.
In an algorithm centric methodology you
can think of an algorithm that can
accomplish the task, then build data
structures for that algorithm to use.
In a data centric methodology, you think
how to structure the data, then build the
algorithm around
KIIT that
CSE/IT
(OOSD)
structure.
2. AN OBJECT ORIENTED
PHILOSOPHY contd.
In traditional approach a lot of code was
written to do all the things that have to
be done.
The code is the plan, brick, and mortar
for building a structure(Code Centric).
Code is the active entity here.

KIIT CSE/IT
(OOSD)
2. AN OBJECT ORIENTED
PHILOSOPHY contd.
Object-Oriented Systems:
Here the algorithm and the data
structures are packaged together as an
object, which has a set of attributes or
properties.
The state of these attributes is reflected
in the values stored in its data
structures.
Objects has a collection of methods or
procedures
Attributes KIIT
and methods
CSE/IT
(OOSD)
are equal and
2. AN OBJECT ORIENTED
PHILOSOPHY contd.
OOP languages bridge the semantic gap
between the ideas of the application and
those of the underlying machine &
Objects represent the application data in
a way that is not forced by hardware
architecture.

KIIT CSE/IT
(OOSD)
3. OBJECTS

The term object was first utilized in


the Simula language.
The term object means a
combination of data and logic that
represent some real world entity.

KIIT CSE/IT
(OOSD)
3. OBJECTS contd.

The data part of this object would be:


Cars name , color, number of doors, price
etc.
The logic part of the object could be
collection of program:
Show mileage, change mileage, stop, go
KIIT CSE/IT
(OOSD)
What is an Object?
Informally, an object represents an entity,
either physical, conceptual, or software
A more formal definition:
An object is a concept, abstraction, or thing
with sharp boundaries and meaning for an
application
An object is something that has:
State
Behavior
Identity
KIIT CSE/IT
(OOSD)
3. OBJECTS contd.
When developing an object-oriented
application, two basic questions
always arise:
What objects does the application
need ?
What functionality should those object
have ?
Programming in an object-oriented
system consists of adding new kinds
of objects to the system and defining
KIIT CSE/IT
(OOSD)
4. CLASSES

Classes are used to distinguish one type of


object from another.
Eg: class eagle or class airplane, class car.
As per O-O systems, a class is a set of
objects that share a common structure and a
common behavior; a single object is simply
an instance of a class.
A class is a specification of
- structure (instance variables),
- behavior (methods),
- inheritance for objects.
KIIT CSE/IT
(OOSD)
What is a class?
A class represents a template for several
objects and describes how these objects are
structured internally
Objects of the same class have the same Objects
of the same Class have the same definition both
for their operations and their information structure
Class is an implementation of objects
An object is an instance of a class
A class is an abstraction in that it:
Emphasizes relevant characteristics
Suppresses other characteristics

KIIT CSE/IT
(OOSD)
Class
A class is comprised of three sections
The first section contains the class name
The second section shows the structure
(attributes)
The third section shows the behavior (operations)
A class is an abstract definition of an object
It defines the structure and behavior of each
object in the class
It serves as a template for creating objects
Objects are grouped into classes

KIIT CSE/IT
(OOSD)
5. OBJECT RESPONDS TO MESSAGES

Object capabilities are determined by the


methods defined for it.
Methods are conceptually equal to the
function definitions used in procedural
language.
Objects perform operations in response to
messages.
Eg: When you press on the break pedal of a
car, you send a stop message to the car
object.
KIIT CSE/IT
(OOSD)
5. OBJECT RESPONDS TO
MESSAGES contd.
Messages essentially are nonspecific
function calls.
A message is different from a
subroutine call; how ?
Since different objects can respond
to the same message in different
way.

KIIT CSE/IT
(OOSD)
Eg: Cars, motorcycles & bicycles will all respond to a
stop message but differently.

Stop
Message
KIIT CSE/IT
(OOSD)
5. OBJECT RESPONDS TO
MESSAGES contd.
NOTE: Messages makes no assumptions about
the class of the receiver or the arguments; they
are simply objects.
It is the receivers responsibilities to respond to
the message appropriately.
This gives flexibility, as different objects can
respond to the same message in different ways.
This is known as polymorphism. It is the main
difference between a message and a subroutine
call.

KIIT CSE/IT
(OOSD)
Difference Between Message &
Method
Instruction Vegetabl
Way it is e
1.Cook Rice
2.Wash All the Prepared Biriyani
vegetables.
3. Marinate the
same with
Yogurt & ginger-
garlic paste
for about an
hour.
4Heat a fry-pan
with Oil , add
Onions etc
5.Cover & let it
sit for a few
MESSAG
minutes before METHO OBJECT
serving.
E KIIT D CSE/IT
(OOSD)
5. OBJECT RESPONDS TO
MESSAGES contd.
In other words, message is the
instruction and the method is the
implementation.
Brake

Car .
Object
*7

5 Object .

Objects respond to messages


according to methods in its class.
KIIT CSE/IT
(OOSD)
5. OBJECT RESPONDS TO
MESSAGES contd.
A message has a name, just like a
method, such as cost, set cost, cooking
time.
An object understands a message when it
can match the message to a method that
has a same name as the message.
A message differs from a function in that
a function says how to do something
and a message says what to do.

KIIT CSE/IT
(OOSD)
Encapsulation and Information Hiding
A concept of Self-containing
Information hiding is the principle of
concealing the data and procedures of an
object
internal structure is hidden from their
surroundings
Functionality and behaviour characterised
by interfacing operations
Data Abstraction is a benefit of oo
concept that incorporates encapsulation
and polymorphism.
KIIT CSE/IT
(OOSD)
Some more O-O Concepts
Class Hierarchy
Single Inheritance
Multiple Inheritance
Multilevel Inheritance
Dynamic Inheritance: Allows objects to
change and evolve over time. It refers to
the ability to add, delete, or change
parents from objects(or Classes) at run
time. Eg: Window object changing to an
icon and a Vice versa.
Polymorphism
KIIT CSE/IT
(OOSD)
Polymorphism
A concept in type theory
A common name may denote
instances of different classes
One type of operation can be
implemented in different ways by
different classes
Overloading in modern OO
language
KIIT CSE/IT
(OOSD)
Why Polymorphism?
A very strong tool for allowing system
designers to develop flexible systems
Designer only need to specify what shall
occur and not occur and not how it shall
occur
To add an object, the modification will
only affect the new object, not those
using it

KIIT CSE/IT
(OOSD)
Inheritance
If class B inherits class A, then both
operations and the information
structure described in class A will
become part of class B

KIIT CSE/IT
(OOSD)
Inheritance

KIIT CSE/IT
(OOSD)
Why Inheritance?
Show similarities
Reuse common descriptions
Software Reuse
Easy modification of model by
performing modification in one place
Avoid redundancy , leading to
smaller and more efficient model,
easier to understand

KIIT CSE/IT
(OOSD)
6. OBJECT RELATIONSHIP AND ASSOCIATIONS

ASSOCIATIONS represents the relationships


between objects and classes.

Can fly Flown


PILOT AIRPLANE
Cardinality specifies how by many instances
S
may relate to a single instance of an
associated class. Eg: one or many, one to
many etc
Multiplicity value (i.e the number of objects
that participate in the association)
KIIT CSE/IT
(OOSD)
What is Cardinality?
Definition: Number of instances of each class involved in
the dialogue is specified by cardinality.
Common multiplicity values:
Symbol Meaning
1 One and only one
0..1 Zero or one
MN From M to N (natural integer)
0..* From zero to any positive integer
1..* From one to any positive integer

Also thought can be given about navigability to every


applicable relationship.
KIIT CSE/IT
(OOSD)
6. OBJECT RELATIONSHIP AND
ASSOCIATIONS contd.
Notations associated in an
association:

Eg:

KIIT CSE/IT
(OOSD)
7. CONSUMER-PRODUCER ASSOCIATION

It is a special form of association also


known as client-server association or
use relationship.
It is viewed as one-way interaction.

Request for
PrintServ printing Item
er
PRODUCE CONSUM
R ER object
provides requests
service service
KIIT CSE/IT
(OOSD)
Association and
Link
A link:
An instance of an association
Exists between two or more objects
Dynamically created and destroyed
as the run of a system proceeds
For example:
An employee joins an organization.
Leaves that organization and joins
a new organization etc.
Relationships
Association
Aggregation
Composition
Dependency
Generalization
Realization

KIIT CSE/IT
(OOSD)
ASSOCIATION
These are the most general type of relationship:
It denotes a semantic connection between
two classes
It shows BI directional connection between
two classes
It is a weak coupling as associated classes
remain somewhat independent of each other
Example:

KIIT CSE/IT
(OOSD)
Association
Relationship

1 borrowed by *
Library Member Book
3-ary Association
* *
Person Skill

Competency

level
Aggregation
Relationship
Represents whole-part
relationship
Represented by a diamond
symbol at the composite end.
Cannot be reflexive(i.e.
recursive)
Not symmetric
It can be transitive
Aggregation
Relationship

* Paragraph * Line
1
Document 1
Composition
Relationship
Life of item is same as the order

1 *
Order Item
Relationships: Composition
A form of aggregation with strong
ownership and coincident lifetimes
The parts cannot survive the
whole/aggregate
This is a strong form of aggregation
It expresses the stronger coupling
between the classes

KIIT CSE/IT
(OOSD)
Aggregation
cont

An aggregate object contains other


objects.
Aggregation limited to tree
hierarchy:
No circular inclusion relation.
Aggregation vs.
Composition
Composition:
Composite and components have
the same life.
Aggregation:
Lifelines are different.
Consider an order object:
Aggregation: If order items can be
changed or deleted after placing the
order.
Composition: Otherwise.
Composition versus
Aggregation
1

* Item Composition
Order

* Item Aggregation
Order
8. AGGREGATION AND OBJECT CONTAINMENT

Some objects may be composed of


and may contain other objects.
Since each object has an identity,
one object can refer to other objects.
This is known as AGGREGATION,
where an attribute can be an object
itself.
Eg: A car object is an aggregation of
engine, seat, wheels, and other
objects. KIIT CSE/IT
(OOSD)
8. AGGREGATION AND OBJECT
CONTAINMENT contd.
Fig: A car object
showing Car
aggregation.

Engin Whee
Seat
e l

KIIT CSE/IT
(OOSD)
Relationships: Dependency
A relationship between two model
elements where a change in one
may cause a change in the other
Non-structural, using relationship

KIIT CSE/IT
(OOSD)
Relationships:
Generalization
A relationship among classes where one
class shares the structure and/or behavior
of one or more classes
Defines a hierarchy of abstractions in
which a subclass inherits from one or more
superclasses
Single inheritance
Multiple inheritance
Generalization is an is-a-kind of
relationship
KIIT CSE/IT
(OOSD)
Relationships: Realization
One classifier serves as the contract
that the other classifier agrees to
carry out
Found between:
Interfaces and the classifiers that realize
them

KIIT CSE/IT
(OOSD)
The Relationship Between Classes
and Objects
A class is an abstract definition of an
object
It defines the structure and behavior of
each object in the class
It serves as a template for creating
objects
Objects are grouped into classes

KIIT CSE/IT
(OOSD)
Strengths of Object
Orientation
A single paradigm
Facilitates architectural and code reuse
Models more closely reflect the real world
More accurately describe corporate data and
processes
Decomposed based on natural partitioning
Easier to understand and maintain
Stability
A small change in requirements does not mean
massive changes in the system under development

KIIT CSE/IT
(OOSD)
CASE STUDY
Do Self Study of A PAY ROLL
PROGRAM of both Structured
Approach and O-O Approach.

KIIT CSE/IT
(OOSD)

Вам также может понравиться