Encapsulation
Binding (or wrapping) code and data together into a single unit is known as encapsulation.
For example: A java class is the example of encapsulation.
Java bean is the fully encapsulated class because all the data members are private here.

Encapsulation is the ability to package data, related behavior in an
object bundle and control/restrict access to them (both data and
function) from other objects. It is all about packaging related stuff
together and hide them from external elements.
We can see that keywords encapsulation and data hiding are used
synonymously everywhere. It should not be misunderstood that
encapsulation is all about data hiding only. When we say encapsulation,
emphasis should be on grouping or packaging or bundling related data and
behavior together.
Encapsulation can be described as a protective barrier that prevents the code and data being randomly accessed by other code defined outside the class. Access to the data and code is tightly controlled by an interface.
Encapsulation can be described as a protective barrier that prevents the code and data being randomly accessed by other code defined outside the class. Access to the data and code is tightly controlled by an interface.
Advantages of using Encapsulation :
- The ability to modify our implemented code without breaking the code of others who use our code.
- It gives maintainability, flexibility and extensibility to our code.
- The fields of a class can be made read-only or write-only.
- A class can have total control over what is stored in its fields.
- The users of a class do not know how the class stores its data. A class can change the data type of a field and users of the class do not need to change any of their code.
Note :- The public methods are the access points to this class' fields from the
outside java world. Normally, these methods are referred as getters and
setters. Therefore any class that wants to access the variables should
access them through these getters and setters.
Implementation of Encapsulation :
public class EncapTest{
private String name;
private String idNum;
private int age;
public int getAge(){
return age;
}
public String getName(){
return name;
}
public String getIdNum(){
return idNum;
}
public void setAge( int newAge){
age = newAge;
}
public void setName(String newName){
name = newName;
}
public void setIdNum( String newId){
idNum = newId;
}
}
Save the above code in a different file like "EncapTest.java"
public class RunEncap{
public static void main(String args[]){
EncapTest encap = new EncapTest();
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
System.out.print("Name : " + encap.getName()+
" Age : "+ encap.getAge());
}
}
Save the above code in a different file like "RunEncap.java"
If we Execute this Program it will gives the output as follows : " James 20"