Data encapsulation: Difference between revisions
BenAveling (talk | contribs) Moved. Now make generic. |
BenAveling (talk | contribs) In various languages... |
||
Line 23: | Line 23: | ||
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. |
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}} |
{{compu-lang-stub}} |
Revision as of 10:19, 6 March 2007
Most programming languages allow the programmer to encapsulate data. Encapsulation protects data from inappropriate access by other parts of the same program, in order to encourage certain good programing practices.
Example
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 which allows different parts of the program to control how much or how little data is shared.