The Evolution of Object Oriented Programming
The Evolution of Object Oriented Programming
Object-oriented programming (OOP) has undergone a fascinating journey since its early
beginnings in the 1960s. Here's a glimpse into its evolution:
Page 1 of 7
1.4 Future of OOP:
OOP remains a fundamental paradigm for many developers, but other paradigms like
functional programming are gaining ground.
The future might see a hybrid approach, combining object-oriented and functional
paradigms based on specific project requirements.
OOP principles like encapsulation, abstraction, and polymorphism will likely remain
relevant, but their implementation may evolve with new technologies and trends.
Page 2 of 7
2 Introduction of 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 Concepts:
Class
Objects
Data Abstraction
Encapsulation
Inheritance
Polymorphism
Dynamic Binding
Message Passing
2.1 Class:
“A class is a user-defined data type”.
It consists of data members and member functions, which can be accessed and used
by creating an instance of that class.
It represents the set of properties or methods that are common to all objects of one
type.
“A class is like a blueprint for an object.”
For Example: Consider the Class of Cars. There may be many cars with different names and
brands but all of them will share some common properties like all of them will have 4 wheels,
Speed Limit, Mileage range, etc. So here, Car is the class, and wheels, speed limits, mileage
are their properties.
2.2 Object:
It is a basic unit of Object-Oriented Programming and represents the real-life
entities.
An Object is an instance of a Class.
Page 3 of 7
For example “Dog” is a real-life Object, which has some characteristics like color, Breed,
Bark, Sleep, and Eats.
2.4 Encapsulation:
“Encapsulation is defined as the wrapping up of data under a single unit. It is the
mechanism that binds together code and the data it manipulates.”
In Encapsulation, the variables or data of a class are hidden from any other class and can be
accessed only through any member function of their class in which they are declared. As in
encapsulation, the data in a class is hidden from other classes, so it is also known as data-
hiding.
Page 4 of 7
Consider a real-life example of encapsulation, in a company; there are different sections like
the accounts section, finance section, sales section, etc. The finance section handles all the
financial transactions and keeps records of all the data related to finance. Similarly, the sales
section handles all the sales-related activities and keeps records of all the sales. Now there may
arise a situation when for some reason an official from the finance section needs all the data
about sales in a particular month. In this case, he is not allowed to directly access the data of
the sales section. He will first have to contact some other officer in the sales section and then
request him to give the particular data. This is what encapsulation is. Here the data of the sales
section and the employees that can manipulate them are wrapped under a single name “sales
section”.
2.5 Inheritance:
Inheritance is an important pillar of OOP(Object-Oriented Programming).
“The capability of a class to derive properties and characteristics from another class is
called Inheritance.”
When we write a class, we inherit properties from other classes. So when we create a class, we
do not need to write all the properties and functions again and again, as these can be inherited
from another class that possesses it. Inheritance allows the user to reuse the code whenever
possible and reduce its redundancy.
Page 5 of 7
2.6 Polymorphism:
“The word polymorphism means having many forms. In simple words, we can define
polymorphism as the ability of a message to be displayed in more than one form.”
For example, A person at the same time can have different characteristics. Like a man at the
same time is a father, a husband, an employee. So the same person posses different behavior in
different situations. This is called polymorphism.
Page 6 of 7
3 Benefits of OOP:
Modularization: Breaks down complex problems into smaller, manageable objects.
Code reusability: Inheritance and polymorphism promote code reuse, reducing
development time and effort.
Maintainability: Encapsulation makes code easier to understand and modify without
unintended side effects.
Flexibility: Polymorphism allows for dynamic behavior and adaptability to changing
requirements.
Real-world modeling: Objects naturally map to real-world entities, making code more
intuitive and easier to reason about.
4 Limitations:
Complexity: Can lead to complex object hierarchies and intricate
interactions, potentially making code harder to understand and debug.
Overuse: Over-reliance on inheritance and tightly coupled objects can make code
inflexible and difficult to change.
Page 7 of 7