public, private y protected
Artículo por Club Developers · 13 mayo 2006
2755 vistas
Estas palabras clave del lenguaje Java definen el alcance de una variable, de un método o de una clase. Existen cuatro modificadores de visibilidad o acceso. El cuarto es el modificador vacÃo (nada, sin modificador). No confundir éste último con public.
Veamos las caracterÃsticas de estos modificadores, de más permiso (o visibilidad) a menos:
[table]
[tr]
[td]Palabra[/td]
[td]Visibilidad[/td]
[td]Observaciones[/td]
[/tr]
[tr]
[td]Public[/td]
[td]Las variables, métodos o clases públicas son accesibles des de cualquier objeto.[/td]
[td]La clase principal de un fichero .java tiene que ser obligatoriamente pública.[/td]
[/tr]
[tr]
[td]"vacÃo"[/td]
[td]Las variables, métodos o clases definidas sin modificador son accesibles para cualquier clase que pertenezca al mismo paquete.[/td]
[td]Atención: las variables sin modificador no son accesibles a las clases hijas definidas en otro paquete.[/td]
[/tr]
[tr]
[td]protected[/td]
[td]Las variables, métodos o clases definidas como protegidas sólo son accesibles a las clases hijas o del mismo paquete.[/td]
[td] [/td]
[/tr]
[tr]
[td]private[/td]
[td]Las variables, métodos o clases definidas como privadas sólo son accesibles por la clase en la que han sido definidas.[/td]
[td]Es muy aconsejable declarar como privadas todos los atributos de una clase y crear métodos del tipo get/set para acceder a ellas.[/td]
[/tr]
[/table]
Por supuesto, cualquier variable, método o clase definida en la misma clase, será accesible desde ésta.
Veamos las caracterÃsticas de estos modificadores, de más permiso (o visibilidad) a menos:
[table]
[tr]
[td]Palabra[/td]
[td]Visibilidad[/td]
[td]Observaciones[/td]
[/tr]
[tr]
[td]Public[/td]
[td]Las variables, métodos o clases públicas son accesibles des de cualquier objeto.[/td]
[td]La clase principal de un fichero .java tiene que ser obligatoriamente pública.[/td]
[/tr]
[tr]
[td]"vacÃo"[/td]
[td]Las variables, métodos o clases definidas sin modificador son accesibles para cualquier clase que pertenezca al mismo paquete.[/td]
[td]Atención: las variables sin modificador no son accesibles a las clases hijas definidas en otro paquete.[/td]
[/tr]
[tr]
[td]protected[/td]
[td]Las variables, métodos o clases definidas como protegidas sólo son accesibles a las clases hijas o del mismo paquete.[/td]
[td] [/td]
[/tr]
[tr]
[td]private[/td]
[td]Las variables, métodos o clases definidas como privadas sólo son accesibles por la clase en la que han sido definidas.[/td]
[td]Es muy aconsejable declarar como privadas todos los atributos de una clase y crear métodos del tipo get/set para acceder a ellas.[/td]
[/tr]
[/table]
Por supuesto, cualquier variable, método o clase definida en la misma clase, será accesible desde ésta.