Java Encapsulation

Article by: Manish Methani

Last Updated: October 26, 2021 at 10:04am IST
2 mins 51 sec read

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.

Watch Video Tutorials at Codzify YouTube Channel:

Codzify Logo

Terms and Conditions    Cookie Policy   Refund Policy   Adsense Disclaimer

Contact: teamcodzify@gmail.com