OOPS Overview and Concepts

OOPS Overview

OOPS stand for Object-oriented programming (OOP) System. This is widely used in most of the programming languages like C++, Python, Java. 

It is a programming standard based on the concept of class and "objects". It may contain data and code. Here "data" refers to the fields which are usually identified as parameters or attributes and "code" refers to the group of codes or procedures, usually identified as methods or functions.

One of the characteristics of objects is that an object of a class can access and change the parameters of the class. In C++, objects have a notion of "this" but is not mandatory. In OOP, computer programs are composed of classes that interact with one another. There is a notable difference between the OOP languages and the procedure-oriented programming.

Interesting fact,
In this article, the term "Object Oriented Programming System" may be used the most. But in general, this is not used on a large scale or known to be a useful acronym. In practice, "OOP" is the term used to refer Object-oriented Programming.

Main OOPS Concepts are,

  • Encapsulation
  • Data Hiding
  • Data Abstraction
  • Inheritance
  • Polymorphism
  • Dynamic Binding
  • Message Passing

Class and Object

  • A class is a blueprint, or prototype which defines and describes the member attributes and member functions.
  • Objects are the instances of a class. Simply speaking, it may be defined as a variable of user-defined datatype classes. Through an object or instance, all member variables and member functions of classes can be accessed.

For a better understanding,

Encapsulation

Encapsulation is a process of capsulation of data and methods into a combined unit. In C++, encapsulation is used along with the classes concept. 

Bundling of data and methods (functions)  as a single unit is known as encapsulation. Encapsulation represents the information of variables (attributes) in terms of data and, methods (functions) and its operations in terms of purpose.

For a better understanding,

Data Hiding

Data hiding is a technique especially exercised in object-oriented programming (OOP).

Data hiding is hiding the details of internal data members of an object. Data hiding secures the access of the members and protects object integrity by proposed changes which in turn reduces system complexity and increases robustness. Data hiding is also known as Information hiding. Data hiding is related to other OOPS concepts like Abstraction and Encapsulation.

For a better understanding,

Abstraction

Data abstraction is the process of securing the information outside the scope of a class or an object.

It means supplying only the necessary data to the object of a class and hiding the other details.
In C++, this can be achieved with the help of access specifiers like "public", "private" and "protect". Public members can be accessed from anywhere using the object. Private members can be accessed only within its member methods.

Inheritance

Inheritance is the concept in which a class derives the characters of another class. The new class is called the derived the class and the old class from which the characters are derived is the base class. the derived class derives the characters of the base class using ":" operator.

Polymorphism

Polymorphism is the ability to use the functions or operators in various forms. Using Polymorphism different behaviors can be designed with the same name. 

Poly, referring to many, signifies the many uses of these operators and functions. A single function usage or an operator functioning in many ways can be called polymorphism. 

Dynamic Binding

Dynamic binding is also called as late binding or run-time binding.

Dynamic binding is the linking procedure or method call at run-time. This means that the code to be executed for a particular method call is known only at run-time. 

Message Passing

In C++, Message passing is a type of communication between processes or objects. Objects can send and receive messages to other processes or objects same as people exchanging information. Messages may be handshakes, signals, data, data structures, or packets.