¿Cuál es la regla de accesibilidad y explica diferentes niveles de accesibilidad en Java?

Java proporciona control de acceso a través de tres palabras clave: privada , protegida y pública . No estamos obligados a usar estos modificadores de acceso siempre, por eso tenemos otro modificador de acceso cuando no usamos ninguno de estos tres modificadores de acceso, comúnmente conocidos como ” acceso predeterminado “, ” paquete privado ” o ” sin modificador “.

Podemos usar modificadores de acceso con clases, así como con variables y métodos de clase.

Modificadores de acceso a clases Java

Se nos permite usar solo modificadores de acceso “públicos” o “predeterminados” con clases de Java.

  • Si una clase es “pública”, entonces podemos acceder a ella desde cualquier lugar, es decir, desde cualquier otra clase ubicada en cualquier otro paquete, etc.
  • Solo podemos tener una clase “pública” en un archivo fuente y el nombre del archivo debe ser el mismo que el nombre de la clase pública.
  • Si la clase tiene “acceso predeterminado”, solo se puede acceder desde otras clases en el mismo paquete.

Modificadores de acceso de miembro de clase Java

Podemos tener los cuatro modificadores de acceso para variables y métodos de miembros de clase. Sin embargo, las reglas del modificador de acceso de miembros se aplican después de las reglas de acceso de nivel de clase. Por ejemplo, si la clase tiene acceso predeterminado, no estará visible en otros paquetes y, por lo tanto, los métodos y variables de la clase tampoco estarán visibles.

Examinaremos cada uno de ellos por separado y luego mostraremos los accesos con un programa simple.

palabra clave pública

Si el miembro de la clase es “público”, se puede acceder desde cualquier lugar. Se accede a la variable o método miembro globalmente. Esta es la forma más sencilla de proporcionar acceso a los miembros de la clase, sin embargo, debemos tener cuidado al usar esta palabra clave con variables de clase, de lo contrario, cualquiera puede cambiar los valores. Por lo general, las variables de clase se mantienen como privadas y se proporcionan métodos getter-setter para trabajar con ellas.

palabra clave privada

Si el miembro de la clase es “privado”, será accesible solo dentro de la misma clase. Este es el acceso más restringido y el miembro de la clase no será visible para el mundo exterior. Por lo general, mantenemos las variables de clase como privadas y los métodos destinados a ser utilizados solo dentro de la clase como privados.

palabra clave protegida

Si el miembro de la clase está “protegido”, entonces será accesible solo para las clases en el mismo paquete y para las subclases . Este modificador está menos restringido del acceso privado pero más restringido del acceso público. Usualmente usamos esta palabra clave para asegurarnos de que las variables de clase sean accesibles solo para las subclases.

acceso predeterminado

Si el miembro de la clase no tiene ningún modificador de acceso especificado, entonces se trata con acceso predeterminado. Las reglas de acceso son similares a las clases y el miembro de la clase con acceso predeterminado será accesible para las clases solo en el mismo paquete. Este acceso es más restringido que el público y protegido, pero menos restringido que el privado.

(Menos accesible) privado < predeterminado < protegido < público (Más accesible)

La accesibilidad significa reglas de alcance como dónde puede acceder o dónde no puede acceder.

Tenemos 4 especificadores de acceso en java.

1 público

2 privado

3.protegido

4.default

1. Público: podemos acceder a variables públicas desde cualquier lugar desde cualquier clase. puede acceder libremente, no hay restricciones al respecto.

2. Privado: se trata de los especificadores de acceso más restringidos. No podemos acceder a esto desde fuera de la clase, solo podemos acceder dentro de la clase.

3. Protegido: se puede acceder a él en la clase infantil i, e si el padre tiene la variable protegida, el niño puede acceder a esa variable libremente. Proporciona acceso a nivel de paquete.

4: Predeterminado: si no proporciona ningún especificador de acceso, se incluye el valor predeterminado. Proporciona solo el acceso a nivel de paquete.

dentro de la clase derivada significa clase secundaria.

dentro del paquete externo significa otro paquete.

La accesibilidad en Java define desde qué método o variable de todos los lugares se puede acceder.

Java tiene para el nivel de accesibilidad:

  1. Valor predeterminado: sin definir el modificador de acceso para el método. Se puede acceder a estos métodos desde la clase y el paquete.
  2. Privado: solo se puede acceder a estos métodos desde dentro de la clase.
  3. Protegido: solo se puede acceder a estos métodos desde la clase, subclase y paquete.
  4. Público: se puede acceder a estos métodos desde cualquier lugar.