This article will discuss about the encapsulation in programming.
Introduction
This article will discuss about encapsulation in object oriented programming. Watch our 500 videos on Azure, WCF, WPF, LINQ, Design Patterns, WWF, Silverlight, UML @ http://www.questpond.com/
What is Encapsulation?
- Encapsulation is one of the fundamental principles of object-oriented programming.
- Encapsulation is a process of hiding all the internal details of an object from the outside world
- Encapsulation is the ability to hide its data and methods from outside the world and only expose data and methods that are required
- Encapsulation is a protective barrier that prevents the code and data being randomly accessed by other code or by outside the class
- Encapsulation gives us maintainability, flexibility and extensibility to our code.
- Encapsulation makes implementation inaccessible to other parts of the program and protect from whatever actions might be taken outside the function or class.
- Encapsulation provides a way to protect data from accidental corruption
- Encapsulation hides information within an object
- Encapsulation is the technique or process of making the fields in a class private and providing access to the fields using public methods
- Encapsulation gives you the ability to validate the values before the object user change or obtain the value
- Encapsulation allows us to create a "black box" and protects an objects internal state from corruption by its clients.
Two ways to create a validation process.
- Using Accessors and Mutators
- Using properties

In this example _employeeid and _salary is private fields and providing access to the fields using public methods (SetEmployeeID,GetEmployeeID,SetSalary,GetSalary)

In this example _employeeid and _salary is private fields and providing access to the fields using public methods (EmployeeID,Salary)
Benefits of Encapsulation
- In Encapsulation fields of a class can be read-only or can be write-only
- A class can have control over in its fields
- A class can change data type of its fields anytime but users of this class do not need to change any code
You can find source code at the top of this article.