Download - Oo concepts and class modeling
Motivation• You got a gun
• You were the proud owner of the nice gun!
• You used it:
• You claimed you know how to use a gun!
Object• Any real world entity: chair, fan, student, cow• Object has crisp boundaries• You can physically or logically perceive an object • Object has:
• State ( values of attributes)• Behavior( method response)• Identity( address+name)
Taking about the dogAttributes(these will be common to all dogs)
State( talking about dog obove)
Breed LabradorOwner Mr. crazyBatch_no 420_IMVaccinated NoHobbies Musicbadhabbits smoking
• Behavior: • gets_vaccination• Runs• Listensongs….
• Identity: • Batch_no ( it is unique for all dogs)
Task:• Think of an object• Give its state- • Now deduce the attributes from
this state• Talk of the identity
What we learned• People tend to see the same thing in
different manner• Why So??
– Due to various perspectives, interests• Technically we will refer this syndrome
as Abstraction
What is..• An abstraction focuses on the outside view of an object
andseparates an object’s behaviour from its implementation
• a simplified description, or specification, of a system that emphasizes some of the system's details or properties while suppressing others.
• A good abstraction is one that emphasizes details that are significant to the reader or user and suppresses details that are, at least for the moment, immaterial or diversionary“
• Nearly all programming languages designed since 1980 support data abstraction
Thus• “An abstraction denotes the essential characteristics of
an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries,
relative to the perspective of the viewer”-Grady Booch
Need??• Large programs have two special needs:
– Some means of organization, other than simply division into subprograms
– Some means of partial compilation (compilation units that are smaller than the whole program)
Hence encapsulation• “Encapsulation is a mechanism used to hide the data,
internal structure, and implementation details of an object.
• All interaction with the object is through a public interface of operations.”
• Abstraction and encapsulation are complementary concepts: abstraction focuses upon the observable behaviour of an object, whereas encapsulation focuses upon the implementation that gives rise to this behaviour.
• For abstraction to work, implementations must be encapsulated"
Defined as..• “Encapsulation is the process of
compartmentalizing the elements of an abstraction that constitute its structure and behaviour; encapsulation serves to separate the contractual interface of an abstraction and its implementation.”
– Grady Booch
Encapsulation is achieved through• Encapsulation is most often achieved through
information hiding, which is the process of hiding all the secrets of anobject that do not contribute to its essential characteristics; typically, the structure of an object is hidden, as well as the ,implementation of its methods.
In programming• Encapsulation Abstraction= Class • For eg: think of a person as student• From this perspective think of his
description/properties• Now compartmentalize these properties into:
– attributes + behavior– Make attributes as : member variables/ data members– Make behavior: member functions/ methods– Name the entity as some noun : Student (because its
meaningful according to the perspective)
And we have..Class Student{int roll_no, marks;String Name, branch, year;int get_Attendence()int check_percentage()}
Thus • The act of partitioning a program into individual
components can reduce its complexity to some degree. .
• Although partitioning a program is helpful for this reason, a more powerful justification for partitioning a program is that it creates a number of well defined, documented boundaries within the program.
Why Modularity??• modularization consists of dividing a program into
modules which can be compiled separately, but which have connections with other modules.
• The overall goal of the decomposition into modules is the reduction of software cost by allowing modules to be designed and revised independently. .
Defined as..• Modularity is the property of a system that has been
decomposed into a set of cohesive and loosely coupled modules
What is the need• A set of abstractions often forms a hierarchy, and by
identifying these hierarchies in our ,design, we greatly simplify our understanding of the problem
We learned• Generally, the ability to appear in many forms.• The same invocation can produce “many
forms” of results• The same method name and signature can
cause different actions to occur, – depending on the type of object on which
the method is invoked• Promotes extensibility• New objects types can respond to existing
method calls
• Polymorphism exists when the features of inheritance and dynamic binding interact. It is
perhaps the most powerful feature of object-oriented programming languages
Defined as..• In object-oriented programming, polymorphism
refers to a programming language's ability to process objects differently depending on their data type or class. More specifically, it is the ability to redefine methods for derived classes.
What is an Object?• From the perspective of
human cognition, an object is any of the following:– A tangible and/or visible
thing– Something that may be
apprehended intellectually– Something toward which
thought or action is directed– something that exists in time
and space.
Defined as• An object has state, behaviour, and identity; the
structure and behaviour of similar objects are defined in their common class; the terms instance and object are interchangeable.
Object: StateProperty(attribute)
Current value(State)
Amount of money $45No to slots 20No of empty slots 5No of filled slots 10Price per slot …
State: defined as• The state of an object encompasses all of the
(usually static) properties of the object plus the current (usually dynamic) values of each of these properties.
Behavior• the behaviour of an
object represents its outwardly visible and testable activity
• behaviour also notes that the state of an object affects its behaviour as well.
Behavior : defined as• Behaviour is how an object acts and reacts, in
terms of its state changes and message passing.
• Thus:– The state of an object represents the cumulative
results of its behaviour
Operations: means to show behaviour(Operation/methods/memberfunctions)• An operation denotes a service that a class offers to its clients. • In practice, we have found that a client typically performs five
kinds of operations upon an object:– Modifier :An operation that alters the state of an object– Selector :An operation that accesses the state of an object, but does
not alter the state– Iterator :An operation that permits all parts of an object to be accessed
in some well-defined order– Constructor: An operation that creates an object and/or initializes its
state– Destructor An operation that frees the state of an object and/or
destroys the object itself
Task to do• For a Stack data
structure identify :• State: properties and
current values• Behavior• Operations of different
categories
Identity: defined as• “Identity is that property of an object which
distinguishes it from all other objects "
Roles and Responsibilities• all of the methods and free subprograms associated
with a particular object comprise its protocol.
Roles• object's allowable behaviour, and so comprises the entire
static and dynamic view of the object. • For most nontrivial abstractions, it is useful to divide this
larger protocol into logical groupings of behavior.• These collections, which thus partition the behavior space• of an object, denote the roles that an object can play. • a role is a mask that an object wears , and so defines a
contract between an abstraction and its clients
Responsibility• The responsibilities of an object to "include two key
items: – the knowledge an object maintains and – the actions an object can perform.
• Responsibilities are meant to convey a sense of the purpose of an object and its place in the system.
• The responsibilities of an object are all the services it provides for all of the contracts it supports"
Object : Life Span• Object Life Span :The lifetime of an object extends from
the time it is first created (and thus first consumes space) until that space is reclaimed .
• To explicitly create an object, we must either declare it or allocate it.
• Object destruction may vary …• Persistent objects have slightly different semantics
regarding destruction