Introduction to Object Oriented Programming Concepts Java
Object oriented Programming system or structure
is way of developing software using object. In which we can create modify and
delete the object. Using oops we can store data and function in a single
unit.In oops concept is implemented in our real life.
OOP has following charactersties.
v Object: It is instance of class(Attribute, Behaviour, Identity)
v Class: It is collection of Object(Method & Veriable).
v Inheritance: It is base class derived from another class is called inheritance.(Reusability).
v Encapsulate: It is binding of data and function into a unit call as class and this known as encapsulate. It is provide security of data mean wrapping or grouping data in a single unit.
v Polymorphism : It is show different behavior at different instance(different function with different parameter). One object we can used different different method on object has different behaviour.
v Abstraction : Abstraction refers to the act of represent essential feature without include the background details or explanation. Classes use the concept of abstraction and are defined as a list of abstract attribute. It show important data and hide the unwanted data.
What is OOP?
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 re-usability
by means of four main object-oriented programming concepts.
In order to
clearly understand the object orientation, let’s take your “hand” as an
example. The “hand” is a class. Your body has two objects of type hand, named
left hand and right hand. Their main functions are controlled/ managed by a set
of electrical signals sent through your shoulders (through an interface). So
the shoulder is an interface which your body uses to interact with your hands.
The hand is a well architected class. The hand is being re-used to create the
left hand and the right hand by slightly changing the properties of it.
What is an Object?
An object can be considered a
"thing" that can perform a set of related activities. The set of activities
that the object performs defines the object's behavior. For example, the hand
can grip something or a Student (object) can give the name or address. In pure OOP terms
an object is an instance of a class.
Class is simply a representation of a type of object. It is the
blueprint/ plan/ template that describe the details of an object. A
class is the blueprint from which the individual objects are created. Class is
composed of three things: a name, attributes, and operations.
public
class Student
{
}
According to the
sample given below we can say that the Student object, named object Student,
has been created out of the Student class.
Student
objectStudent = new Student();
In
real world, you'll often find many individual objects all of the same kind. As
an example, there may be thousands of other bicycles in existence, all of the
same make and model. Each bicycle has built from the same blueprint. In
object-oriented terms, we say that the bicycle is an instance of the class of
objects known as bicycles.
In
the software world, though you may not have realized it, you have already used
classes. For example, the TextBoxcontrol, you always used, is made out of the
TextBox class, which defines its appearance and capabilities. Each time you
drag a TextBox control, you are actually creating a new instance of the TextBox
class.
How
to identify and design a Class?
This is an
art; each designer uses different techniques to identify classes. However
according to Object Oriented Design Principles, there are five principles that
you must follow when design a class.
v SRP - The Single Responsibility Principle : A class should have one, and only one, reason to change.
v OCP - The Open Closed Principle : You should be able to extend a classes behavior, without modifying it.
v LSP - The Liskov Substitution Principle : Derived classes must be substitutable for their base classes.
v DIP - The Dependency Inversion Principle : Depend on abstractions, not on concretions.
v ISP- The Interface Segregation Principle : Make fine grained interfaces that are client specific.
In
software world the concept of dividing and conquering is always recommended, if
you start analyzing a full system at the start, you will find it harder to
manage. So the better approach is to identify the module of the system first
and then dig deep in to each module separately to seek out classes.
A
software system may consist of many classes. But in any case, when you have
many, it needs to be managed. Think of a big organization, with its work force
exceeding several thousand employees (let’s take one employee as a one class).
In order to manage such a work force, you need to have proper management
policies in place. Same technique can be applies to manage classes of your
software system as well. In order to manage the classes of a software system,
and to reduce the complexity, the system designers use several techniques,
which can be grouped under four main concepts named Encapsulation, Abstraction, Inheritance, and Polymorphism. These
concepts are the four main gods of OOP world and in software
term, they are called four main Object Oriented Programming (OOP) Concepts.
Multi Level Inheritance
No comments:
Post a Comment