The document discusses key concepts in object-oriented analysis and design (OOAD) including abstraction, encapsulation, class hierarchy, persistence, dynamic binding, inheritance, polymorphism, and metaclasses. It provides definitions and examples for each concept to illustrate how they are applied in OOAD.
1. Abstraction-OOAD
An abstraction denotes the essential characteristics of
an object that distinguish it from all other kinds of
objects, relative to the perspective of the viewer.”
Example − When a class Student is designed, the
attributes enrolment_number, name, course, and
address are included while characteristics like
pulse_rate and size_of_shoe are eliminated, since they
are irrelevant in the perspective of the educational
institution
2. Encapsulation
• Encapsulation is the process of binding both
attributes and methods together within a
class.
• Through encapsulation, the internal details of a
class can be hidden from outside.
• The class has methods that provide user
interfaces by which the services provided by
the class may be used.
3. Class Hierarchy
In Grady Booch’s words,
• “Hierarchy is the ranking or ordering of
abstraction”.
• It uses the principle of “divide and conquer”.
Hierarchy allows code reusability.
The two types of hierarchies in OOA are −
4. • “IS–A” hierarchy − It defines the hierarchical
relationship in inheritance, whereby from a
super-class, a number of subclasses may be
derived which may again have subclasses and
so on.
• For example, if we derive a class Rose from a
class Flower, we can say that a rose “is–a”
flower.
5. • “PART–OF” hierarchy − It defines the
hierarchical relationship in aggregation by
which a class may be composed of other
classes.
• For example, a flower is composed of sepals,
petals, stamens, and carpel. It can be said that
a petal is a “part–of” flower.
6. Persistence
• In files or databases, the object lifespan is
longer than the duration of the process creating
the object.
• This property by which an object continues to
exist even after its creator ceases to exist is
known as persistence.
7. Dynamic binding
• Static binding is a binding in which name can
be associated with the class during
compilation time , and it is also called as early
Binding.
• Dynamic binding is a binding in which name
can be associated with the class during
execution time , and it is also called as Late
Binding
8. Inheritance
• Inheritance is the property of object-oriented
systems that allows objects to be built from
other objects.
• Inheritance is a relationship between classes
where one class is the parent class of another
derived class called base class or super class.
9. Types of inheritance
Dynamic inheritance.
• It allows objects to change and evolve over
time. Since base classes provide properties and
attributes for objects, changing base classes
changes the properties and attributes of a class.
.
10. Multiple inheritance.
• Some object-oriented systems permit a class to
inherit its state (attributes) and behaviors form
more than one super class
11. Polymorphism
• Polymorphism means that the same operation
may behave differently on different classes.
• Polymorphism allows us to write generic,
reusable code more easily, specify general
instructions and delegate the implementation
details to the objects involved.
12. Meta Classes
• If a class is an object, it must belong to a class
which is called as meta-class or a class of
classes.
• All the objects are instances of a class and all
classes are instances of a meta-class.
• Meta-classes are used by the compiler.