Blog

Follow our blog and get to know about the latest updates in the fields of technology like Python, Machine Learning, Data structures, Data Science, Digital Marketing etc.

What is Object Oriented Programming

28.06.2021

Do you ever wonder how a software programme or application works, how it acts, how it behaves, and how it helps the end user in a real-world situation? If yes, you are at the right place! Because we're going to look at an important concept known as OOPs which can help developers incorporate real-world scenarios into their software programme. 

We can now order online groceries, foods, electronics such as cell phones, televisions, refrigerators, and air conditioners, as well as book cabs and much more with just one tap. All of this is possible solely as a result of the OOPs technique in any programming language.


What is OOPs?

Object-Oriented Programming, or OOPs, refers to programming languages that make use of objects (whether physical or logical). Inheritance, abstraction, polymorphism, and other real-world concepts are all part of object-oriented programming. The primary goal of OOP is to connect data and the functions that operate on it so that no other part of the code can access it.

Here is the list of OOP concepts:

Polymorphism: Polymorphism is a term that refers to a process that performs a single action in multiple ways. It happens when we have a lot of classes that are related to each other through inheritance. 

There are two types of polymorphism: 

  • Compile-time polymorphism – This occurs when an object's functionality is bound at compile time. The method signatures are checked at compile time, and the programming language knows which method to call. It is also known as static or early binding.

  • Runtime polymorphism – Dynamic Method or Runtime Polymorphism Dispatch is a method of resolving calls to overridden methods at runtime rather than at compile time. A superclass's reference variable is used to call an overridden method in this process.

Polymorphism can be achieved by using method overloading and overriding. It is frequently expressed as a single interface with multiple methods. This simplifies things by allowing the same interface to be used for a variety of actions.

Inheritance: Inheritance is a concept in which one class's properties can be inherited by another. It aids in the reuse of code and the establishment of a relationship between various classes.

There are two classes in programming:

  1. Parent class (Super or Base class)

  2. Children class (Subclass or Derived class)

A class that inherits properties is referred to as a Child Class, whereas a class that inherits properties is referred to as a Parent Class.

Encapsulation: The wrapping up of data into a single unit is referred to as encapsulation. It’s a process of making a class's fields read-only or write-only.  It is similar to a protective shield that prevents data from being accessed by code outside of the shield. 

The reusability of this method is also improved and unit testing is also easier with encapsulated code.

Encapsulation can be achieved by:

  1. Declaring a class's variables as private.

  2. Public setter and getter methods - It modifies and views the values of variables.

Abstraction: Abstraction is a technique for displaying only the information that is required while hiding the rest. The main purpose of abstraction, we can say, is to hide the data. Abstraction is the process of selecting data from a large set of data in order to display the information required, thereby reducing programming complexity and effort. The beauty of abstraction is that you don't have to know how a call is generated internally.  As a result, abstraction aids in the reduction of complexity. 


There are two ways to achieve abstraction:

  1. Abstract Class

  2. Interface

A class that contains one or more abstracted methods is called an abstract class. It is defined by the keyword "abstract." When you declare a class as an abstract class, it can't be directly instantiated, which means it can't be used to create an object. The abstract class cannot be directly accessed, but it can be inherited from another class. You must provide implementations for the abstract methods defined in an abstract class if you inherit it.

An interface in a programming language is a blueprint of a class. It has static constants and abstract methods. It’s is a mechanism to achieve abstraction. There can be only abstract methods, not method bodies. It is used to achieve abstraction and multiple inheritance in Programming language.


What is an Object?

An object is any entity that has a state and behavior. For instance, a chair, pen, table, keyboard, bicycle, and so on. It could be physical or logical in nature.

An instance of a class can be defined as an Object. An object contains an address and occupies memory space. Objects can communicate even if they are unaware of each other's data or code. The only thing that matters is the type of message that is accepted and the type of response that the objects provide.


What is Class?

The term "class" refers to a group of objects. It's a logical thing.

A class can also be thought of as a blueprint from which an individual object can be created. Class doesn't take up any room.


What is Method?

A method is a block of code or a collection of statements that are grouped together to perform a specific task or operation. The reusability of code is achieved through the use of a method. A method is created once and then reused multiple times. It also allows for easy code modification and readability. Only when we call or invoke a method is it executed.


Apart from these concepts, there are some other terms that are used in Object-Oriented design:

  1. Coupling - The relationship between two classes is referred to as coupling. It denotes how well one object or class understands another. That is, if one class changes its properties or behavior, the dependent changes in the other class will be affected. As a result, these changes will be determined by the degree of interdependence between the two classes.

  1. Cohesion - Cohesion is a metric that measures how closely a class's methods and attributes are related to one another and how focused they are on completing a single, well-defined task for the system. The term "cohesion" refers to a class's ability to have a single, well-defined responsibility.

  1. Association - The term "association" refers to a relationship that exists between two distinct classes and is established through the use of their Objects. It establishes a connection between two or more objects. One-to-one, one-to-many, many-to-one, and many-to-many associations are all possible.

  1. Aggregation - Aggregation is a weak association or we can say it’s a one-way relationship with a unidirectional association. It is a relationship between an object and the objects it contains. It’s a term used to describe a part of a larger relationship in which a part can exist without the whole. The Has-A relationship is represented by aggregation. 

  1. Composition - Composition is a strong association. There is a strong link between composition. It’s a term used to describe a part of a larger relationship in which a part cannot exist without the whole. When a whole is deleted, all of its parts are also removed. As a result, the part-of relationship is represented by composition.


Summary

Here is a summary of our blog on “What is OOPs Programming”:

OOPs is a programming language that uses classes and objects to create a program. Objects are both instances of classes and real-world entities. Classes are collections of objects that are written or named with the keyword class. 

Polymorphism refers to the existence of multiple forms that can be overloaded or overridden. Abstraction refers to the hiding of data; it only shows the user the information they need. The process of acquiring or inheriting properties from one class to another is known as inheritance. Encapsulation refers to the wrapping of data using get and set methods.

We hope you got a better understanding of “what is OOPs” by reading this article!