Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
21 views10 pages

Unit 1

OOSD notes

Uploaded by

Sarthak Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views10 pages

Unit 1

OOSD notes

Uploaded by

Sarthak Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Unit 1

Objects and Classes


The concepts of objects and classes are intrinsically linked with each other and form
the foundation of object–oriented paradigm.

Object
An object is a real-world element in an object–oriented environment that may have a
physical or a conceptual existence. Each object has −

 Identity that distinguishes it from other objects in the system.


 State that determines the characteristic properties of an object as well as the
values of the properties that the object holds.
 Behavior that represents externally visible activities performed by an object in
terms of changes in its state.

Objects can be modelled according to the needs of the application. An object may
have a physical existence, like a customer, a car, etc.; or an intangible conceptual
existence, like a project, a process, etc.

Class
A class represents a collection of objects having same characteristic properties that
exhibit common behavior. It gives the blueprint or description of the objects that can
be created from it. Creation of an object as a member of a class is called instantiation.
Thus, object is an instance of a class.

The constituents of a class are −

 A set of attributes for the objects that are to be instantiated from the class.
Generally, different objects of a class have some difference in the values of the
attributes. Attributes are often referred as class data.
 A set of operations that portray the behavior of the objects of the class.
Operations are also referred as functions or methods.

Example

Let us consider a simple class, Circle, that represents the geometrical figure circle in a
two–dimensional space. The attributes of this class can be identified as follows −
 x–coord, to denote x–coordinate of the center
 y–coord, to denote y–coordinate of the center
 a, to denote the radius of the circle

Some of its operations can be defined as follows −

 findArea(), method to calculate area


 findCircumference(), method to calculate circumference
 scale(), method to increase or decrease the radius

During instantiation, values are assigned for at least some of the attributes. If we
create an object my_circle, we can assign values like x-coord : 2, y-coord : 3, and a : 4
to depict its state. Now, if the operation scale() is performed on my_circle with a
scaling factor of 2, the value of the variable a will become 8. This operation brings a
change in the state of my_circle, i.e., the object has exhibited certain behavior.

Encapsulation and Data Hiding


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. It permits the elements of the class to be accessed from outside only through
the interface provided by the class.

Data Hiding
Typically, a class is designed such that its data (attributes) can be accessed only by its
class methods and insulated from direct outside access. This process of insulating an
object’s data is called data hiding or information hiding.

Example

In the class Circle, data hiding can be incorporated by making attributes invisible from
outside the class and adding two more methods to the class for accessing class data,
namely −

 setValues(), method to assign values to x-coord, y-coord, and a


 getValues(), method to retrieve values of x-coord, y-coord, and a
Here the private data of the object my_circle cannot be accessed directly by any
method that is not encapsulated within the class Circle. It should instead be accessed
through the methods setValues() and getValues().

Message Passing
Any application requires a number of objects interacting in a harmonious manner.
Objects in a system may communicate with each other using message passing.
Suppose a system has two objects: obj1 and obj2. The object obj1 sends a message to
object obj2, if obj1 wants obj2 to execute one of its methods.

The features of message passing are −

 Message passing between two objects is generally unidirectional.


 Message passing enables all interactions between objects.
 Message passing essentially involves invoking class methods.
 Objects in different processes can be involved in message passing.

Inheritance
Inheritance is the mechanism that permits new classes to be created out of existing
classes by extending and refining its capabilities. The existing classes are called the
base classes/parent classes/super-classes, and the new classes are called the derived
classes/child classes/subclasses. The subclass can inherit or derive the attributes and
methods of the super-class(es) provided that the super-class allows so. Besides, the
subclass may add its own attributes and methods and may modify any of the super-
class methods. Inheritance defines an “is – a” relationship.

Example

From a class Mammal, a number of classes can be derived such as Human, Cat, Dog,
Cow, etc. Humans, cats, dogs, and cows all have the distinct characteristics of
mammals. In addition, each has its own particular characteristics. It can be said that a
cow “is – a” mammal.

Types of Inheritance
 Single Inheritance − A subclass derives from a single super-class.
 Multiple Inheritance − A subclass derives from more than one super-classes.
 Multilevel Inheritance − A subclass derives from a super-class which in turn
is derived from another class and so on.
 Hierarchical Inheritance − A class has a number of subclasses each of which
may have subsequent subclasses, continuing for a number of levels, so as to
form a tree structure.
 Hybrid Inheritance − A combination of multiple and multilevel inheritance so
as to form a lattice structure.

The following figure depicts the examples of different types of inheritance.


Polymorphism
Polymorphism is originally a Greek word that means the ability to take multiple
forms. In object-oriented paradigm, polymorphism implies using operations in
different ways, depending upon the instance they are operating upon. Polymorphism
allows objects with different internal structures to have a common external interface.
Polymorphism is particularly effective while implementing inheritance.

Example

Let us consider two classes, Circle and Square, each with a method findArea().
Though the name and purpose of the methods in the classes are same, the internal
implementation, i.e., the procedure of calculating area is different for each class.
When an object of class Circle invokes its findArea() method, the operation finds the
area of the circle without any conflict with the findArea() method of the Square class.

Generalization and Specialization


Generalization and specialization represent a hierarchy of relationships between
classes, where subclasses inherit from super-classes.

Generalization
In the generalization process, the common characteristics of classes are combined to
form a class in a higher level of hierarchy, i.e., subclasses are combined to form a
generalized super-class. It represents an “is – a – kind – of” relationship. For example,
“car is a kind of land vehicle”, or “ship is a kind of water vehicle”.

Specialization
Specialization is the reverse process of generalization. Here, the distinguishing
features of groups of objects are used to form specialized classes from existing
classes. It can be said that the subclasses are the specialized versions of the super-
class.

The following figure shows an example of generalization and specialization.


Links and Association
Link
A link represents a connection through which an object collaborates with other
objects. Rumbaugh has defined it as “a physical or conceptual connection between
objects”. Through a link, one object may invoke the methods or navigate through
another object. A link depicts the relationship between two or more objects.

Association
Association is a group of links having common structure and common behavior.
Association depicts the relationship between objects of one or more classes. A link
can be defined as an instance of an association.

Degree of an Association
Degree of an association denotes the number of classes involved in a connection.
Degree may be unary, binary, or ternary.

 A unary relationship connects objects of the same class.


 A binary relationship connects objects of two classes.
 A ternary relationship connects objects of three or more classes.

Cardinality Ratios of Associations


Cardinality of a binary association denotes the number of instances participating in an
association. There are three types of cardinality ratios, namely −
 One–to–One − A single object of class A is associated with a single object of
class B.
 One–to–Many − A single object of class A is associated with many objects of
class B.
 Many–to–Many − An object of class A may be associated with many objects
of class B and conversely an object of class B may be associated with many
objects of class A.

Aggregation or Composition
Aggregation or composition is a relationship among classes by which a class can be
made up of any combination of objects of other classes. It allows objects to be placed
directly within the body of other classes. Aggregation is referred as a “part–of” or
“has–a” relationship, with the ability to navigate from the whole to its parts. An
aggregate object is an object that is composed of one or more other objects.

Example

In the relationship, “a car has–a motor”, car is the whole object or the aggregate, and
the motor is a “part–of” the car. Aggregation may denote −

 Physical containment − Example, a computer is composed of monitor, CPU,


mouse, keyboard, and so on.
 Conceptual containment − Example, shareholder has–a share.

Benefits of Object Model


Now that we have gone through the core concepts pertaining to object orientation, it
would be worthwhile to note the advantages that this model has to offer.

The benefits of using the object model are −

 It helps in faster development of software.


 It is easy to maintain. Suppose a module develops an error, then a programmer
can fix that particular module, while the other parts of the software are still up
and running.
 It supports relatively hassle-free upgrades.
 It enables reuse of objects, designs, and functions.
 It reduces development risks, particularly in integration of complex systems.
# Phases in Object-Oriented Software Development
The major phases of software development using object–oriented methodology are
object-oriented analysis, object-oriented design, and object-oriented implementation.

Object–Oriented Analysis
In this stage, the problem is formulated, user requirements are identified, and then a
model is built based upon real–world objects. The analysis produces models on how
the desired system should function and how it must be developed. The models do not
include any implementation details so that it can be understood and examined by any
non–technical application expert.

Object–Oriented Design
Object-oriented design includes two main stages, namely, system design and object
design.

System Design

In this stage, the complete architecture of the desired system is designed. The system
is conceived as a set of interacting subsystems that in turn is composed of a hierarchy
of interacting objects, grouped into classes. System design is done according to both
the system analysis model and the proposed system architecture. Here, the emphasis is
on the objects comprising the system rather than the processes in the system.

Object Design

In this phase, a design model is developed based on both the models developed in the
system analysis phase and the architecture designed in the system design phase. All
the classes required are identified. The designer decides whether −

 new classes are to be created from scratch,


 any existing classes can be used in their original form, or
 new classes should be inherited from the existing classes.

The associations between the identified classes are established and the hierarchies of
classes are identified. Besides, the developer designs the internal details of the classes
and their associations, i.e., the data structure for each attribute and the algorithms for
the operations.

Object–Oriented Implementation and Testing


In this stage, the design model developed in the object design is translated into code in
an appropriate programming language or software tool. The databases are created and
the specific hardware requirements are ascertained. Once the code is in shape, it is
tested using specialized techniques to identify and remove the errors in the code.

You might also like