OOPs Concepts in Java
OOPs Concepts in Java
What is OOPS?
Object-Oriented Programming System (OOPs) is a programming
concept that works on the principles of abstraction, encapsulation,
inheritance, and polymorphism. It allows users to create objects they want
and create methods to handle those objects. The basic concept of OOPs is to
create objects, re-use them throughout the program, and manipulate these
objects to get results.
OOP meaning “Object Oriented Programming” is a popularly known and
widely used concept in modern programming languages like Java.
1) Class
The class is one of the Basic concepts of OOPs which is a group of similar
entities. It is only a logical component and not the physical entity. Lets
understand this one of the OOPs Concepts with example, if you had a class
called “Expensive Cars” it could have objects like Mercedes, BMW, Toyota,
etc. Its properties(data) can be price or speed of these cars. While the
methods may be performed with these cars are driving, reverse, braking etc.
2) Object
An object can be defined as an instance of a class, and there can be multiple
instances of a class in a program. An Object is one of the Java OOPs concepts
which contains both the data and the function, which operates on the data.
For example – chair, bike, marker, pen, table, car, etc.
3) Inheritance
Inheritance is one of the Basic Concepts of OOPs in which one object
acquires the properties and behaviors of the parent object. It’s creating a
parent-child relationship between two classes. It offers robust and natural
mechanism for organizing and structure of any software.
4) Polymorphism
Polymorphism refers to one of the OOPs concepts in Java which is the ability
of a variable, object or function to take on multiple forms. For example, in
English, the verb run has a different meaning if you use it with a laptop, a
foot race, and business. Here, we understand the meaning of run based on
the other words used along with it. The same also applied to Polymorphism.
5) Abstraction
Abstraction is one of the OOP Concepts in Java which is an act of
representing essential features without including background details. It is a
technique of creating a new data type that is suited for a specific application.
Lets understand this one of the OOPs Concepts with example, while driving a
car, you do not have to be concerned with its internal working. Here you just
need to concern about parts like steering wheel, Gears, accelerator, etc.
6) Encapsulation
Encapsulation is one of the best Java OOPs concepts of wrapping the data
and code. In this OOPs concept, the variables of a class are always hidden
from other classes. It can only be accessed using the methods of their
current class. For example – in school, a student cannot exist without a class.
7) Association
Association is a relationship between two objects. It is one of the OOP
Concepts in Java which defines the diversity between objects. In this OOP
concept, all objects have their separate lifecycle, and there is no owner. For
example, many students can associate with one teacher while one student
can also associate with multiple teachers.
8) Aggregation
In this technique, all objects have their separate lifecycle. However, there is
ownership such that child object can’t belong to another parent object. For
example consider class/objects department and teacher. Here, a single
teacher can’t belong to multiple departments, but even if we delete the
department, the teacher object will never be destroyed.
9) Composition
Composition is a specialized form of Aggregation. It is also called “death”
relationship. Child objects do not have their lifecycle so when parent object
deletes all child object will also delete automatically. For that, let’s take an
example of House and rooms. Any house can have several rooms. One room
can’t become part of two different houses. So, if you delete the house room
will also be deleted.
For any further deposit or withdrawal operation – you will code repeating the
same lines again and again.
Structured Programming
With the arrival of Structured programming repeated lines on the code were
put into structures such as functions or methods. Whenever needed, a
simple call to the function is made.
Object-Oriented Programming
In our program, we are dealing with data or performing specific operations
on the data. In fact, having data and performing certain operation on that
data is very basic characteristic in any software program. Experts in
Software Programming thought of combining the Data and Operations.
Therefore, the birth of Object Oriented Programming which is commonly
called OOPS. The same code in Object Oriented Programming languages will
have same data and some action performed on that data.
Class Account
{
int account_number;
int account_balance;
public void showdata()
{
System.out.println(“Account Number”+ account_number)
System.out.println(“Account Balance”+ account_balance)
}
}
By combining data and action, we will get many advantages over structural
programming viz,
Abstraction
Encapsulation
Inheritance
Polymorphism
They are discussed in greater details in as we progress
You need to model real-life beings, i.e., dogs into software entities.
Moreover, the million dollar question is, how you design such software?
Here is the solution- First, let’s do an exercise. You can see the picture of
three different breeds of dogs below.
Can you identify the difference? List down the differences between them.
Some of the differences you might have listed out maybe breed, age, size,
color, etc. If you think for a minute, these differences are also some common
characteristics shared by these dogs. These characteristics (breed, age, size,
color) can form a data members for your object.
Next, list out the common behaviors of these dogs like sleep, sit, eat, etc. So
these will be the actions of our software objects.
// Class Declaration
public class Dog
{
// Instance Variables
String breed;
String size;
int age;
String color;
// method 1
public String getInfo()
{
return ("Breed is: "+breed+" Size is:"+size+" Age is:"+age+" color is:
"+color);
}
public static void main(String[] args)
{
Dog maltese = new Dog();
maltese.breed="Maltese";
maltese.size="Small";
maltese.age=2;
maltese.color="white";
System.out.println(maltese.getInfo());
}
}
// Class Declaration
class Dog
{
// Instance Variables
String breed;
String size;
int age;
String color;
// method 1
public String getInfo()
{
return ("Breed is: "+breed+" Size is:"+size+" Age is:"+age+" color is:
"+color);
}
}
public class Execute
{
public static void main(String[] args)
{
Dog maltese = new Dog();
maltese.breed="Maltese";
maltese.size="Small";
maltese.age=2;
maltese.color="white";
System.out.println(maltese.getInfo());
}
}
Output:
Breed is: Maltese Size is: Small Age is: 2 color is: white
Summary
1. Java Class is an entity that determines how Java Objects will behave and
what objects will contain
2. A Java object is a self-contained component which consists of methods
and properties to make certain type of data useful
3. A class system allows the program to define a new class (derived class) in
terms of an existing class (superclass) by using a technique
like inheritance, overriding and augmenting.