Object-Oriented Programming (OOPs)
Object-oriented programming:
As the name suggests,
Object-Oriented Programming or OOPs refers to languages that use objects in
programming. Object-oriented programming aims to implement real-world entities
like inheritance, hiding, polymorphism, etc in programming. The main aim of OOP
is to bind together the data and the functions that operate on them so that no
other part of the code can access this data except that function.
OOPS concept |
1) Class
The class is a group of similar entities. It is only a logical component
and not a physical entity. For example, if you had a class called “Expensive
Cars” it could have objects like Mercedes, BMW, Toyota, etc. Its
properties(data) can be price or speed of these cars. While the methods may be
performed with these cars are driving, reverse, braking, etc.
2) Object
An object can be defined as an instance of a class, and there can be
multiple instances of a class in a program. An object contains both the data
and the function, which operates on the data. For example - chair, bike,
marker, pen, table, car, etc.
3) Inheritance
Inheritance is an OOPS concept in which one object acquires the properties
and behaviors of the parent object. It’s creating a parent-child relationship
between two classes. It offers a robust and natural mechanism for organizing
and structure of any software.
4) Polymorphism
Polymorphism refers to the ability of a variable, object or function to
take on multiple forms. For example, in English, the verb run has
a different meaning if you use it with a laptop, a foot
race, and a business. Here, we understand the meaning of run based
on the other words used along with it. The same also applied to Polymorphism.
5) Abstraction
An abstraction is an act of representing essential features without
including background details. It is a technique of creating a new data type
that is suited for a specific application. For example, while driving a car,
you do not have to be concerned with its internal working. Here you just need
to concern about parts like steering wheel, Gears, accelerator, etc.
6) Encapsulation
Encapsulation is an OOP technique of wrapping the data and code. In this
OOPS concept, the variables of a class are always hidden from other classes. It
can only be accessed using the methods of their current class. For example - in
school, a student cannot exist without a class.
7) Association
Association is a relationship between two objects. It defines the
diversity between objects. In this OOP concept, all objects have their separate
lifecycles, and there is no owner. For example, many students can associate
with one teacher while one student can also associate with multiple teachers.
8) Aggregation
In this technique, all objects have their separate lifecycles. However,
there is ownership such that child objects can’t belong to another parent
object. For example, consider the class/objects department and teacher. Here, a
single teacher can’t belong to multiple departments, but even if we delete the
department, the teacher object will never be destroyed.
9) Composition
A composition is a specialized form of Aggregation. It is also called a
"death" relationship. Child objects do not have their lifecycle so
when parent object deletes all child object will also delete automatically. For
that, let’s take an example of houses and rooms. Any house can have several
rooms. One room can’t become part of two different houses. So, if you delete
the house room will also be deleted.
Advantages of OOPS:
- OOP offers easy to
understand and a clear modular structure for programs.
- Objects created for
Object-Oriented Programs can be reused in other programs. Thus it saves
significant development costs.
- Large programs are difficult
to write, but if the development and designing team follow the OOPS
concept then they can better design with minimum flaws.
- It also enhances program modularity because every object exists independently.