In this, we will learn about the basics of OOPs(Object-Oriented Programming). It is a paradigm that provides many concepts, such as inheritance, data binding, polymorphism, etc.

Simula is considered to be the first object-oriented programming language.

The programming paradigm where everything is represented as an object is known as a truly object-oriented programming language.

Smalltalk is considered the first truly object-oriented programming language.

The popular object-oriented languages are Java, C#, PHP, Python, C++, etc.

The main aim of object-oriented programming is to implement real-world entities, for example, object, classes, abstraction, inheritance, polymorphism, etc.


OOPs (Object-Oriented Programming System)

Object means a real-world entity such as a pen, paper, chair, table, computer, watch, etc. Object-Oriented Programming is a methodology or paradigm to design a program using classes and objects. It simplifies software development and maintenance by providing some concepts like:

  • Object
  • Class
  • Inheritance
  • Polymorphism
  • Abstraction
  • Encapsulation

There are some other terms which are used in Object-Oriented design:

  • Coupling
  • Cohesion
  • Association
  • Aggregation
  • Composition

Java OOPs



Object:

Any entity that has state and behavior is known as an object. For example, a chair, pen, table, keyboard, bike, etc. It can be physical or logical.

An Object can be defined as an instance of a class. An object contains an address and takes up some space in the memory. Object can communicate without knowing each other's data or code. All that is required is the type of message accepted and the type of response returned by the objects.

Example: A dog is an object because it has states like color, name, breed, etc. as well as behaviors like wagging the tail, barking, eating, etc.


Class

Collection of objects is called class. It is a logical entity.

A class can also be defined as a blueprint from which you can create an individual object. Class doesn't consume any space.


Inheritance

When one object acquires all the properties and behaviors of a parent object, it is known as inheritance. It provides code re-usability. It is used to achieve runtime polymorphism.


Polymorphism

If one task is performed in different ways, it is known as polymorphism.

For example: to convince the customer differently, to draw something, for example, shape, triangle, rectangle, etc.

In Java, we use method overloading and method overriding to achieve polymorphism.


Abstraction

Hiding internal details and showing functionality is known as abstraction.

For example phone call, we don't know the internal processing.

In Java, we use abstract class and interface to achieve abstraction.


Encapsulation

Binding (or wrapping) code and data together into a single unit are known as encapsulation.

For example, a capsule, it is wrapped with different medicines.

A java class is the example of encapsulation. Java bean is the fully encapsulated class because all the data members are private here.


Coupling

Coupling means information or details or dependence on another class. It comes from when the classes get to know each other. If a class has a detailed description of another section, there is a strong coupling. In Java, we use private, protected, and public changes to determine the visibility level of a category, method, and field. You can use visible connectors for weak joints because there is no concrete implementation.


Cohesion

Cohesion refers to the level of component that performs one well-defined function. One well-defined task is done in a very cohesive way. A weak cohesive approach will divide the work into separate parts. The Java.io package is the most compact package because it has I / O-related components and interface. However, the Java.util package is a weakly integrated package because it has sections that do not match the meeting places.


Association

Association represents the relationship between the objects. Here, one object can be associated with one object or many objects. There can be four types of association between the objects:

  • One to One
  • One to Many
  • Many to One, and
  • Many to Many

Aggregation

Aggregation is a way to achieve Association. Aggregation represents the relationship where one object contains other objects as a part of its state. It represents the weak relationship between objects. It is also termed as a has-a relationship in Java. Like, inheritance represents the is-a relationship. It is another way to reuse objects.

 

Composition

The composition is also a way to achieve Association. The composition represents the relationship where one object contains other objects as a part of its state. There is a strong relationship between the containing object and the dependent object. It is the state where containing objects do not have an independent existence. If you delete the parent object, all the child objects will be deleted automatically.



Advantage of OOPs over Procedure-oriented programming language

1. OOPs makes development and maintenance easier, whereas, in a procedure-oriented programming language, it is not easy to manage if code grows as project size increases.

2. OOPs provides data hiding, whereas, in a procedure-oriented programming language, global data can be accessed from anywhere.

Glob Data


Figure: Data Representation in Procedure-Oriented Programming


Object Data

Figure: Data Representation in Object-Oriented Programming

3. OOPs provides the ability to simulate real-world event much more effectively. We can provide the solution of real word problem if we are using the Object-Oriented Programming language.


What is the difference between an object-oriented programming language and object-based programming language?

Object-based programming language follows all the features of OOPs except Inheritance. JavaScript and VBScript are examples of object-based programming languages.