Encapsulation in Java: A step ahead
In the object-oriented world, we have pillars of programming one of them is Encapsulation the other three are Inheritance, Polymorphism, and Abstraction.
Here's the article which will explain, What, Why, and How of Encapsulation, and the other three are yet to be released one by one. So let’s get started with encapsulation.
Introduction
According to most of the resources, encapsulation means hiding the data members (variables and methods) within the class or a mechanism of wrapping/hiding a code and the variables/methods together as a unit.
In this, we will come across the entire concept of what encapsulation means, why to use encapsulation and how to achieve encapsulation in the programming world.
Data Hiding Vs Encapsulation
When encapsulation is implemented, only the variables inside the class can access it.
Therefore known as data hiding. But encapsulation and data hiding both are different from each other.
Data Hiding means protecting the members of a class from unauthorized/illegal access.
Encapsulation automatically achieves the concept of data hiding by providing security to data by making the variables private.
As it is difficult to understand encapsulation through definitions we will learn in deep about this through some code examples,
Here the common behavior and characteristics of an employee are enclosed in a single unit, the Employee.java class this is a process of encapsulation.
An Employee object exposes its behavior and characteristics to the outside world.
Here encapsulation hides implementation details of the Employee class. Similarly creating an interface is also a process of encapsulation.
How to achieve encapsulation?
Encapsulation is implemented in java using interfaces, class, access modifiers, setters and getters.
A Class/Interface will encapsulate essential features of an object.
Access Modifiers such as private, public, protected restrict access to data at different levels.
Setter/Getter methods prevent data from misuse or unwanted changes.
For achieving encapsulation in java we declare the variable of a class as private. Private data members are used because they are only accessible within the class. It can’t be accessed using outside the class, the only way to access it is to use setter/getter methods.
Let’s modify the Employee. class to prevent the member variables name, age, and address from being modified by other objects.
Here’s the field name, age, and address that can be changed only in the Employee. class. If someone attempts to make a change like shown below, then code will not be compiled as the field is marked as private.
But what if we want to modify/view the attributes values in a safer manner, then we use getter/setter methods. Creating a setter for field age,
Here, one can change the age of the Employee object and set it to a valid range. Likewise, with the name field associated with an Employee object, one can change the details but can’t enter null or empty values as the setter will throw an exception.
This protest data from unauthorized access or malicious changes, for example:
Till now we have learned what is encapsulation in java but the question arises of how to achieve encapsulation and the need to ensure encapsulation. Before moving forward to know how to achieve first we should know about what getter/ setter methods meant.
To get the code written in this article check here to my GitHub repository for the same.
Github Link: https://github.com/AmanMRT/OOPS-Concepts/tree/main/Encapsulation
Getter and Setter Methods
TO ensure encapsulation, we make the data member variables of the class private. Now private members are only accessible within the class It can’t be accessed outside the class as they restrict access to data.
So without much theory, we start with some code as it's easy to understand what this means.

Gopi ChandPosted May 5, 2014, 12:10 PM
It's my job to share better articles..thanks for your appreciation.
Sanjay SinghPosted May 5, 2014, 11:37 AM
very nice article sir... thanks for sharing