What is the difference between abstraction and encapsulation in Java?

Java 8Object Oriented ProgrammingProgramming

As per dictionary, abstraction is the quality of dealing with ideas rather than events. For example, when you consider the case of e-mail, complex details such as what happens as soon as you send an e-mail, the protocol your e-mail server uses are hidden from the user. Therefore, to send an e-mail you just need to type the content, mention the address of the receiver, and click send.

Abstraction is a process of hiding the implementation details from the user, only the functionality will be provided to the user. In other words, the user will have the information on what the object does instead of how it does it.

In Java, abstraction is achieved using Abstract classes and interfaces.

Encapsulation in Java is a mechanism of wrapping the data (variables) and code acting on the data (methods) together as a single unit.


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;
public class RunEncap {
   public static void main(String args[]) {
      EncapTest encap = new EncapTest();
      System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge());


Name : James Age : 20
Published on 06-Feb-2018 01:01:40