2. 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!
3. 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)
4.
5. Taking about the dog
Attributes(these will be common
to all dogs)
State( talking about dog obove)
Breed Labrador
Owner Mr. crazy
Batch_no 420_IM
Vaccinated No
Hobbies Music
badhabbits smoking
10. 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
11. What is..
• An abstraction focuses on the outside view of an object and
separates 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
12.
13.
14. 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
17. 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)
18.
19. 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"
20. 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
21. Encapsulation is achieved through
• Encapsulation is most often achieved through information
hiding, which is the process of hiding all the secrets of an
object that do not contribute to its essential characteristics;
typically, the structure of an object is hidden, as well as the
,implementation of its methods.
22. 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)
23. And we have..
Class Student
{
int roll_no, marks;
String Name, branch, year;
int get_Attendence()
int check_percentage()
28. 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.
29. 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. .
30. Defined as..
• Modularity is the property of a system that has been
decomposed into a set of cohesive and loosely coupled
modules
34. 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
40. 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
41.
42. • Polymorphism exists when the features of inheritance
and dynamic binding interact. It is
perhaps the most powerful feature of object-oriented
programming languages
43. 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.
45. 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.
46. 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.
48. 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.
49. 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.
50. 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
51. 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
52. Task to do
• For a Stack data structure
identify :
• State: properties and
current values
• Behavior
• Operations of different
categories
54. Identity: defined as
• “Identity is that property of an object which
distinguishes it from all other objects "
55. Roles and Responsibilities
• all of the methods and free subprograms associated with a
particular object comprise its protocol.
56. 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
57. 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"
58. 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