In this blog, I’m trying to explain the concept of
Encapsulation is defined 'as
the process of enclosing one or more items within a physical or logical
package'. Encapsulation, in object oriented programming methodology, prevents
access to implementation details.
Abstraction and encapsulation are related features in object
oriented programming. Abstraction allows making relevant information visible
and encapsulation enables a programmer to implement
the desired level of abstraction.
Encapsulation is implemented by using access
specifier. An access specifier defines
the scope and visibility of a class member. C# supports the following access specifier:
- Protected internal
Public Access Specifier
Public access specifier allows a class to expose its member
variables and member functions to other functions and objects. Any public
member can be accessed from outside the class.
Private Access Specifier
Private access specifier allows a class to hide its member
variables and member functions from other functions and objects. Only functions
of the same class can access its private members. Even an instance of a class
cannot access its private members.
Protected Access Specifier
Protected access specifier allows a child class to access
the member variables and member functions of its base class. This way it helps
in implementing inheritance. We will discuss this in more details in the
Internal Access Specifier
Internal access specifier allows a class to expose its
member variables and member functions to other functions and objects in the
current assembly. In other words, any member with internal access specifier can
be accessed from any class or method defined within the application in which
the member is defined.
Protected Internal Access Specifier
The protected internal access specifier allows a class to
hide its member variables and member functions from other class objects and
functions, except a child class within the same application. This is also used
while implementing inheritance.