eXTReMe Tracker

Julio 18, 2004

Accesibilidad de variables y métodos miembros

Escrito el Julio 18, 2004 10:01 AM en Java .

Uno de los aspectos más importantes de la programación orientada a objetos y por ende de Java, es la encapsulación, que consiste básicamente en ocultar la información que no es conveniente o necesaria para realizar una determinada tarea.

En Java, para acceder a las variables y métodos miembro de un objeto, hay que tener en cuenta desde donde lo hacemos.

Desde dentro de la propia clase:

- Todos los miembros de una clase son accesibles desde la propia clase. Por lo tanto los métodos no necesitan que las variables miembro sean pasadas como argumento.

- Los miembros private de una clase sólo son accesibles para la propia clase.

- Si el constructor de una clase es private, sólo un método static de la propia clase puede crear objetos.

Desde una subclase:

- Las subclases lo heredan todo de sus superclases, incluso lo private. Pero sólo pueden acceder las variables private de la supercalse a través de métodos public, protected o package de la superclase

Desde otras clases del paquete:

- Desde una clase de un paquete se tiene acceso a todos los miembros que no sean private de las demás clases del mismo paquete.

Desde otras clases fuera del paquete:

- Los métodos y variables son accesibles si la clase es public y el miembro es public.

- También son accesibles si la clase que accede es una subclase y el miembro es protected.


Un tanto lioso, pero en cuanto uno se pone a hacer clases en Java, conviene tenerlo a mano. Podemos resumirlo en que con "private" hacemos que una variable miembro o una función miembro de una clase sea accesible sólo desde la misma clase, con protected restringimos el acceso al paquete y por defecto la visibilidad es el paquete (aunque fuera del paquete haya clases que hereden).

Trackback

Puedes hacen ping a esta entrada con la dirección http://www.error500.net/cgi-bin/mt/mt-tb.cgi/351 .

Comentarios

Escribe un comentario










¿Recordar información personal?