Navigation

Saturday, 12 September 2015

Encapsulation in Practical.

Encapsulation is one of the four fundamental OOP concepts.Encapsulation is the technique  to Provide the ability to a program to hind their internal characteristics and behaviorof by  creating
private fields in class and providing access to them via public methods.
If a field is declared private, it cannot be accessed by anyone outside the class,
thereby hiding the fields within the class.So encapsulation  protect them by unauthorized access / party  by creating a protecting wrapper around your code and data.

Encapsulation can be described as a protective barrier that prevents the code and data being
randomly accessed by other code defined outside the class.
The main benefit of encapsulation is the ability to modify our implemented code without breaking the code of others who use our code. With this feature Encapsulation gives maintainability, flexibility and extensibility to our code.

For Example

We have a data class with two fields name and id

public class Result{

   private String name;
   private String remark;


   public String getName(){
      return name;
   }
  public void setName(String newName){
      name = newName;
   }
   public String getRemark(){
      return remark;
   }

   public void setRemark( int remarkPoints){
     
      if(remarkPoints>=5)
      {
         remark="good"
      }

      if(remarkPoints<5)
      {
         remark="poor"
      }
     
   }

In above example we set remarks according to remark points.But after sometime we need to add one
more remark "very good" for student who gets 10 points so we wont ask user of code to change but we will change the setter


 public void setRemark( int remarkPoints){
   
      if(remarkPoints==10)
      {
         remark="very good"
      }

      if(remarkPoints>=5 && remarkPoints<10)
      {
         remark="good"
      }

      if(remarkPoints<5)
      {
         remark="poor"
      }
     
   }


More Example :-


Like we have a class Phone with filed weight, if you will not encapsulate it someone can modify it to have –ve weight,
so it is better to encapsulate using private variable and providing setter method where you will add logic of No –ve and Not over 100 grams.


Let’s take real example of CAR, car is an well-defined composite object with lots of sub systems like transmission system,
music system, air-cooler  or heater system and may have other based on the price of the car.
Now each system has their own protecting layer and because of that transmission system is not interfering with music system
or air-cooler system but yes there is some integration such a way that transmission charges the battery and it helps to play music but no one can directly modify the behavior of other system. So this is the way they hides the complexity of a program



Benefits of Encapsulation:
1)The fields of a class can be made read-only or write-only.

2)A class can have total control over what is stored in its fields.

3)The main benefit of encapsulation is the ability to modify our implemented code without breaking the code of others who use our code because
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.