Anuncios

Java proporciona una serie de modificadores de acceso para establecer niveles de acceso para las clases, variables, métodos y constructores. Los cuatro niveles de acceso son –

  • visibles para el paquete, el valor predeterminado. No se necesitan modificadores.
  • Visible solo para la clase (privado).
  • Visible al mundo (público).
  • Visible para el paquete y todas las subclases (protegido).,

modificador de acceso predeterminado-sin Palabra clave

modificador de acceso predeterminado significa que no declaramos explícitamente un modificador de acceso para una clase, campo, Método, etc.

una variable o método declarado sin ningún modificador de control de acceso está disponible para cualquier otra clase en el mismo paquete. Los campos en una interfaz son implícitamente públicos static final y los métodos en una interfaz son por defecto públicos.,

ejemplo

las Variables y métodos se pueden declarar sin ningún modificador, como en los siguientes ejemplos –

String version = "1.5.1";boolean processOrder() { return true;}

Private Access Modifier – Private

Los métodos, variables y constructores que se declaran privados solo se pueden acceder dentro de la propia clase declarada.

El modificador de acceso privado es el nivel de acceso más restrictivo. La clase y las interfaces no pueden ser privadas.

Las Variables que se declaran privadas se pueden acceder fuera de la clase, si los métodos public getter están presentes en la clase.,

El uso del modificador privado es la forma principal en que un objeto se encapsula y oculta datos del mundo exterior.

ejemplo

la siguiente clase utiliza control de acceso privado –

Aquí, la variable de formato de la clase Logger es privada, por lo que no hay forma de que otras clases recuperen o establezcan su valor directamente.

entonces, para que esta variable esté disponible para el mundo exterior, definimos dos métodos públicos: getFormat(), que devuelve el valor de format, y setFormat(String), que establece su valor.,

Public Access Modifier – Public

una clase, método, constructor, interfaz, etc. se puede acceder a declared public desde cualquier otra clase. Por lo tanto, se puede acceder a campos, métodos, bloques declarados dentro de una clase pública desde cualquier clase perteneciente al Universo Java.

sin embargo, si la clase pública a la que estamos tratando de acceder está en un paquete diferente, entonces la clase pública todavía necesita ser importada. Debido a la herencia de clases, todos los métodos públicos y variables de una clase son heredados por sus subclases.,

ejemplo

la siguiente función utiliza control de acceso público –

public static void main(String arguments) { // ...}

el método main() de una aplicación tiene que ser público. De lo contrario, no podría ser llamado por un intérprete de Java (como java) para ejecutar la clase.

modificador de acceso protegido – las Variables, métodos y constructores protegidos

que están declarados protegidos en una superclase solo pueden ser accedidos por las subclases de otro paquete o cualquier clase dentro del paquete de la clase de los miembros protegidos.

el modificador de acceso protegido no se puede aplicar a clase e interfaces., Métodos, campos pueden ser declarados protegidos, sin embargo los métodos y campos en una interfaz no pueden ser declarados protegidos.

El acceso protegido le da a la subclase la oportunidad de usar el método helper o variable, al tiempo que evita que una clase no relacionada intente usarlo.

ejemplo

la siguiente clase padre usa control de acceso protegido, para permitir que su clase hija invalide el método openSpeaker () −

class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // implementation details }}class StreamingAudioPlayer extends AudioPlayer { boolean openSpeaker(Speaker sp) { // implementation details }}

aquí, si definimos el método openSpeaker() como privado, entonces no sería accesible desde ninguna otra clase que no sea AudioPlayer., Si lo definimos como público, entonces sería accesible a todo el mundo exterior. Pero nuestra intención es exponer este método solo a su subclase, es por eso que hemos utilizado modificador protegido.

control de acceso y herencia

se aplican las siguientes reglas para los métodos heredados:

  • Los métodos declarados públicos en una superclase también deben ser públicos en todas las subclases.

  • Los métodos declarados protegidos en una superclase deben ser protegidos o públicos en subclases; no pueden ser privados.,

  • Los métodos privados profesados no se heredan en absoluto, por lo que no hay ninguna regla para ellos.

java_modifier_types.htm
Anuncios