jueves, 24 de febrero de 2011

Encapsulamiento

Definición previa: un paquete es una colección de clases que se encuentran en el mismo directorio.
Las clases permiten implementar tipos de datos abstractos. El problema que se presenta es que desde cualquier clase se puede accesar los campos de un objeto perteneciente a otra clase. Esto es una violación al principio de abstracción que dice que un tipo de datos abstracto sólo puede ser manipulado a través de las operaciones que se definen para éste.

Visibilidad de Campos y Métodos

En java al definir una clase se puede controlar la visibilidad que tendrán sus campos y métodos al exterior de la clase. Este control se efectúa de la siguiente forma:
class A
{
private int privx;
protected int protb;
public int pubc;
int paqd;
private void MetPriv() { ... }
protected void MetProt() { ... }
public void MetPub(A a)
{
Un campo siempre es visible //
// en la clase en donde se define
... protb ... a.protb ...
... privx ... a.privx ... ... pubc ... a.pubc ... // Un método siempre es visible
; } void MetPaq() { ... } }
// en la clase en donde se define MetPriv(); a.MetPriv(
)

No hay comentarios:

Publicar un comentario