Data encapsulation: Difference between revisions
Appearance
Content deleted Content added
BenAveling (talk | contribs) In various languages... |
Reverting edit(s) by 122.172.81.17 (talk) to rev. 1071847629 by NikhilaSundar: Unexplained content removal (RW 16.1) |
||
(43 intermediate revisions by 37 users not shown) | |||
Line 1: | Line 1: | ||
Data encapsulation, also known as data hiding, is the mechanism whereby the implementation details of a class are kept hidden from the user. The user can only perform a restricted set of operations on the hidden members of the class by executing special functions commonly called ''methods'' to prevent attributes of objects from being easily viewed and accessed. '''Data encapsulation''' may refer to: |
|||
Most programming languages allow the programmer to '''encapsulate data'''. Encapsulation [[Information hiding|protects data from inappropriate access]] by other parts of the same program, in order to encourage certain [[Separation of concerns|good programing practices]]. |
|||
* The wrapping of private data in classes in object-oriented programming languages: see [[Encapsulation (object-oriented programming)]], [[information hiding]], [[separation of concerns]] |
|||
* The wrapping of network data by a lower layer in the [[OSI model]] into a single unit where a higher layer can extract the relevant data: see [[Encapsulation (networking)]] |
|||
== Example == |
|||
{{Disambiguation}} |
|||
public class PrivateTest { |
|||
private int x = 10; // we want to protect x |
|||
public int y = 11; // we don't mind exposing y |
|||
public int getX() { |
|||
return x; |
|||
} |
|||
} |
|||
public class NoseyNeighbour { |
|||
public int f(PrivateTest p) { |
|||
print(p.x); // Error, cannot access x |
|||
print(p.getX()); // This is OK |
|||
print(p.y); // This is OK |
|||
p.y=12; // Even this is OK. |
|||
} |
|||
} |
|||
The variable x can not be accessed outside of the class PrivateTest. In other words only an instance of PrivateTest may modify or look at the variable x. |
|||
== Encapsulation in various languages == |
|||
In object oriented languages such as C++ and Java, encapsulation is handled through classes and the programmer can choose which variables are public, private, or something in-between. Even non-OO languages such as C support encapsulation, expressed through local variables, visible only to a single function, file-scope variables, visible to all the functions in a given file and global variables, visible throught the entire program. Fortran has a similar mechanism called common blocks <!-- unless memory fails me - very likely! --> which allows different parts of the program to control how much or how little data is shared. |
|||
{{compu-lang-stub}} |
Latest revision as of 14:28, 22 March 2023
Data encapsulation, also known as data hiding, is the mechanism whereby the implementation details of a class are kept hidden from the user. The user can only perform a restricted set of operations on the hidden members of the class by executing special functions commonly called methods to prevent attributes of objects from being easily viewed and accessed. Data encapsulation may refer to:
- The wrapping of private data in classes in object-oriented programming languages: see Encapsulation (object-oriented programming), information hiding, separation of concerns
- The wrapping of network data by a lower layer in the OSI model into a single unit where a higher layer can extract the relevant data: see Encapsulation (networking)