Encapsulation in Java
Encapsulation in Java
Encapsulation in Java is a process of wrapping code and data together into a single
unit, for example, a capsule which is mixed of several medicines.
Encapsulation in java
We can create a fully encapsulated class in Java by making all the data members of
the class private. Now we can use setter and getter methods to set and get the data
in it.
By providing only a setter or getter method, you can make the class read-only or
write-only. In other words, you can skip the getter or setter methods.
It provides you the control over the data. Suppose you want to set the value of id
which should be greater than 100 only, you can write the logic inside the setter
method. You can write the logic not to store the negative numbers in the setter
methods.
It is a way to achieve data hiding in Java because other class will not be able to
access the data through the private data members.
The encapsulate class is easy to test. So, it is better for unit testing.
The standard IDE's are providing the facility to generate the getters and setters. So,
it is easy and fast to create an encapsulated class in Java.
Let's see the simple example of encapsulation that has only one field with its setter
and getter methods.
File: Student.java
//It has a private data member and getter and setter methods.
package com.ece;
return name;
this.name=name
}
File: Test.java
package com.ece;
class Test{
s.setName("vijay");
System.out.println(s.getName());
Output:
vijay
Read-Only class
return college;
Now, you can't change the value of the college data member which is "AKG".
Write-Only class
Now, you can't get the value of the college, you can only change the value of
college data member.
Let's see another example of encapsulation that has only four fields with its setter
and getter methods
File: Account.java
//It has a private data member and getter and setter methods.
class Account {
return acc_no;
this.acc_no = acc_no;
return name;
this.name = name;
return email;
this.email = email;
}
return amount;
this.amount = amount;
File: TestAccount.java
acc.setAcc_no(7560504000L);
acc.setName("Veerendra");
acc.setEmail("techveerendras@gmail.com");
acc.setAmount(500000f);
Output: