Data encapsulation
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.