OOPS
OOPS
In the rectangle area example, the problem is the same in both cases - calculate the area
of a rectangle. But the approach to solving the problem is different:
In the procedural version, we start with the main problem (calculate area), and break it
down into a smaller problem (multiply length and width), which is solved with a
function.
In the object-oriented version, we start by defining the objects involved (a Rectangle),
specify its properties (length and width) and behaviors (calculate area), and then use an
instance of this object to solve the problem
1. Encapsulation
2. Data abstraction
3. Polymorphism
4. Inheritance
5. Dynamic binding
6. Message passing
Encapsulation: Wrapping of data and functions together as a single unit is known as encapsulation. By
default data is not accessible to outside world and they are only accessible through the functions which
are wrapped in a class. prevention of data direct access by the program is called data hiding or
information hiding
Data abstraction : Abstraction refers to the act of representing essential features without including the
back ground details or explanation. Classes use the concept of abstraction and are defined as a list of
attributes such as size, weight, cost and functions to operate on these attributes. They encapsulate all
essential properties of the object that are to be created. The attributes are called as data members as
they hold data and the functions which operate on these data are called as member functions. Class use
the concept of data abstraction so they are called abstract data type (ADT)
Polymorphism: Polymorphism comes from the Greek words “poly” and “morphism”. “poly” means many
and “morphism” means form i.e.. many forms. Polymorphism means the ability to take more than one
form. For example, an operation have different behavior in different instances. The behavior depends
upon the type of the data used in the operation. Different ways to achieving polymorphism in C++
program:
1) Function overloading
2) Operator overloading
#include
int main()
int a=4;
a=a<<2;
cout<<a<<endl;
return 0;
Inheritance: Inheritance is the process by which one object can acquire the properties of another.
Inheritance is the most promising concept of OOP, which helps realize the goal of constructing software
from reusable parts, rather than hand coding every system from scratch. Inheritance not only supports
reuse across systems, but also directly facilitates extensibility within a system. Inheritance coupled with
polymorphism and dynamic binding minimizes the amount of existing code to be modified while
enhancing a system.
When the class child, inherits the class parent, the class child is referred to as derived class (sub class)
and the class parent as a base class (super class). In this case, the class child has two parts: a derived part
and an incremental part. The derived part is inherited from the class parent. The incremental part is the
new code written specifically for the class child.
Dynamic binding: Binding refers to linking of procedure call to the code to be executed in response to
the call. Dynamic binding(or late binding) means the code associated with a given procedure call in not
known until the time of call at run time.
Message passing: An object oriented program consists of set of object that communicate with each
other. Objects communicates with each other by sending and receiving information . A message for an
object is a request for execution of a procedure and there fore invoke the function that is called for an
object and generates result