Encapsulation is an important concept of Object-oriented programming. Encapsulation is the concept of wrapping up data(variable) under a single unit. It binds data members and member functions inside a class together.
Encapsulation prevents accessing the implementation details, it makes sure that the ‘sensitive’ data are hidden from the user which leads to the important concept called data hiding. Abstraction and Encapsulation are quite related features, encapsulation helps us to achieve the desired level of abstraction.
Access specifiers are used to achieve encapsulation. We can do so by declaring all the variables in a class private
. But in order to modify or read those data or variables, we need to use the getter and setter (i.e. get and set) method. It prevents from accessing the data directly.
Let us go through an example in C# to understand the concept of hiding data.
Example: C# program for hiding data using the private specifier
There is a separate class for the student whose data members are private so get and set methods are implemented for each private variable in order to access it from the main function of the program.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | using System; public class Student { // private variables private String name; private int roll; // using setter and getter for name public String stdName { get { return name; } set { name = value; } } // using setter and getter for roll public int stdRoll { get { return roll; } set { roll = value; } } } class StudentInfo { static public void Main() { // creating object Student obj = new Student(); //setting the values obj.stdName = "John Mac"; obj.stdRoll = 15; // Getting the values Console.WriteLine("Student Name: " + obj.stdName); Console.WriteLine("Studen Roll: " + obj.stdRoll); } } |
Output:
Student Name: John Mac
Studen Roll: 15
Advantages of Encapsulation:
- Data- hiding and Reusability.
- The class field can be made read-only or write-only.
- It provides the class the total control over the data.