Java Encapsulation

2 mins 51 sec read Basic


Encapsulation in Java is one of the most important feature of Object Oriented Programming. It is a mechanism of wrapping the variables and methods together as a single unit. Wrapping the variables and methods is the concept which you have to understood to understand Encapsulation in Java. Lets take one example,

public class SuperClass 
{
  public int abc;
  ...
}
  
public class SubClass 
{
   public static void main (String [] args) 
     {
        SuperClass superClass = new SuperClass();
        superClass.abc = -5;           // Legal but bad!!
     } 
}

Above program is legal but bad. Why so?

Now suppose 10 other programmers in your company are using your class and that public variable abc. In some days, you realised that you dont want that anyone should use it but other programmers want to change the value of variable abc according to their need.

One wants to set the value of abc to 7, other wants to change the value of abc as 8. Then what will you do in that case? This example is at very basic level but may be useful in companies when you work.

So, if you dont want anyone to use it, You change the modifier to private. But all the extended subclasses who were using that variable will receive the compilation error. Because abc variable is now private variable. So all other programmers will give you an angry look :) Because you made your variable private and they are getting an errors.

Concept of Encapsulation

Encapsulation in Java is nothing but the way of writing the program in a secure manner. Everything will not be done automatically. You have to write code for this but in some different way so that it fulfils the promising security feature of OOPs. See this program again now ...

class SuperClasss 
{    
   // Protect the variable; only an instance
   // of SuperClass can access it
  private int abc;
     
   // Provide public Getter and Setter methods
     public int getSize()
     {
         return abc;
     }
     public void setSize(int newSize)
     {
        abc = newSize;
     }
}


public class SubClass
{
  public static void main (String []args)
  {
    SuperClasss supers = new SuperClasss();
    supers.setSize(10);
    int a = supers.getSize();
  }
}

In previous program we initialised the value of abc directly. But using Encapsulation what we did is we created Setter and Getter methods. This helps other programmers and you also because if any other programmer wants to change the value of abc he has to call the setSize() method to set some value and get it using getSize(). You as a SuperClass also have to perform the same steps. Security here in this case is ,"Variable abc will not be accessed directly. It is private.

So if you want to change the value of abc you have to use instance methods set & get. This is nothing but Encapsulation in Java.

So instead of allowing subclass users to use abc variable of superclass, you have to write setter & getter methods and have to set the values during the creation of an object.

How was the tutorial? Nice. Right?



Deep Concept videos to crack the highly-piad interviews.

Chekout out our Youtube Channel to get detailed video content on important topics in interviews.



What is your Interview Score?

Test your skillset with the curated questions created by experts around the globe.

Book a free test slot. Now !.

It usually takes 30 mins for an online test and this test will be MCQ based. Get detailed analytics based on your test and recommedations with personalised roadmaps.

Book a test slot. Now!

Have questions about the trial coding class?

Chat with our experts to discuss

Connect on WhatsApp


Recommended tutorials

#online compiler for c     #python for programming    

#dfs and bfs algorithm     #programming with c language

#storageclass in C    #listcomprehension in python