You are on page 1of 3

OOP is a design philosophy. It stands for Object Oriented Programming.

Object-
Oriented Programming (OOP) uses a different set of programming languages than
old procedural programming languages (C, Pascal, etc.). Everything in OOP is
grouped as self sustainable "objects". Hence, you gain reusability by means of
four main object-oriented programming concepts.

In order to clearly understand the object orientation model, let’s take your
“hand” as an example. The “hand” is a class. Your body has two objects of the
type "hand", named "left hand" and "right hand". Their main functions are
controlled or managed by a set of electrical signals sent through your shoulders
(through an interface). So the shoulder is an interface that your body uses to
interact with your hands. The hand is a well-architected class. The hand is being
reused to create the left hand and the right hand by slightly changing the
properties of it.

OOP stands for Object Oriented Programming. In, Object-Oriented Programming


(OOP), the program is organized around the data being operated upon rather
than the operations performed. The basic idea behind OOP is to combine both,
data and its functions that operate on the data into a single unit called object.

Following are the basic OOP concepts:

01. Data Abstraction: Abstraction refers to the act of representing essential


features without including the background details or explanations. Abstraction is
implemented through public members of a class, as the outside world is given
only the essential and necessary information through public members, rest of the
things remain hidden.

2. Data Encapsulation: The wrapping up of data and operations/functions (that


operate o the data) into a single unit (called class) is known as Encapsulation.
Encapsulation is implemented with the help of a class as a class binds together
data and its associated function under one unit.

3. Modularity: The act of partitioning a program into individual components is


called modularity. C++ implements modularity through separately compiled files.
The traditional practice in the C++ community is to place module interface in files
named with a .h suffix; these are called header files which can be used through
#include directive.

4. Inheritance: Inheritance is the capability of one class of things to inherit


capabilities or properties from another class. Inheritance is implemented in C++
by specifying the name of the (base) class from which the class being defined (the
derived class) has to inherit from.

5. Polymorphism: Polymorphism is the ability for a message or data to be


processed in more than one form. C++ implements polymorphism through virtual
functions, overloaded functions and overloaded operators.

Evolution of C++

In 1979, Bjarne Stroustrup, a Danish computer scientist, began work on "C with
Classes", the predecessor to C++. The motivation for creating a new language
originated from Stroustrup's experience in programming for his Ph.D. thesis.
Stroustrup found that Simula had features that were very helpful for large
software development, but the language was too slow for practical use, while
BCPL was fast but too low-level to be suitable for large software development.
When Stroustrup started working in AT&T Bell Labs.

In 1983, "C with Classes" was renamed to "C++”, adding new features that
included virtual functions, function name and operator overloading, references,
constants, type-safe free-store memory allocation (new/delete), improved type
checking, and BCPL style single-line comments with two forward slashes (//).
Furthermore, it included the development of a standalone compiler for C++,
Cfront.

Python is an interpreted high-level programming language for general-purpose


programming. Created by Guido van Rossum and first released in 1991, Python
has a design philosophy that emphasizes code readability, notably using
significant whitespace. It provides constructs that enable clear programming on
both small and large scales.
Python features a dynamic type system and automatic memory management. It
supports multiple programming paradigms, including object-oriented, imperative,
functional and procedural, and has a large and comprehensive standard library.

You might also like