Introducción a los modificadores de acceso en Java

Como todos sabemos, Java es uno de los principales lenguajes de programación del mundo. Miles de millones de dispositivos confían en él durante las últimas dos décadas. Java es un lenguaje rápido, confiable, seguro y multiplataforma. Java se ejecuta en cualquier dispositivo siempre que ese dispositivo tenga Java Runtime (JRE), lo que lo convierte en un lenguaje multiplataforma, rápido y confiable. El modificador de acceso es propiedad de Java, lo que lo hace seguro en la plataforma múltiple. Java proporciona seguridad de nivel de clase (durante la encapsulación) al programador mediante el uso de la propiedad del modificador de acceso. Según el libro, la clase es el modelo para construir un objeto en Java, lo que lo convierte en un "bloque de construcción" para el programa, ya que Java es un lenguaje orientado a objetos. Un modificador de acceso especifica cómo cualquier clase puede acceder a una clase dada y sus campos, constructores y métodos dentro, y diferentes paquetes. La clase, los campos, los constructores y los métodos pueden tener uno de los cuatro modificadores de acceso Java diferentes.

  • Privado
  • Público
  • Protegido
  • Predeterminado: no se requiere palabra clave.

Diferentes modificadores de acceso en Java

La siguiente tabla resume cómo podemos aplicar modificadores de acceso Java al programa:

ModificadoresClasePaquetesSubclaseMundo
PrivadoYnortenortenorte
PúblicoYYYY
ProtegidoYYYnorte
DefectoYYnortenorte

Cubriremos cada modificador de acceso Java en las siguientes secciones.

1) Predeterminado

Cuando se declara cualquier clase, miembros de datos y la variable al no escribir con un modificador de acceso, se establece en el modificador de acceso 'predeterminado'. El modificador de acceso 'predeterminado' significa que el código dentro de cualquier clase puede acceder a todo el programa dentro del mismo paquete.

  • Este modificador de acceso funciona solo dentro del mismo paquete.
  • A veces, el modificador de acceso 'predeterminado' también se conoce como un modificador de acceso al paquete, ya que solo es accesible dentro del mismo paquete.
  • Las subclases no pueden acceder a métodos, miembros de datos y variables (campos) en la superclase, si estos métodos, miembros de datos y variables (campos) están marcados con el modificador de acceso 'predeterminado' en la clase a menos que estas subclases se encuentren en el mismo paquete que el superclase

Ejemplo 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

Salida:

Hola Mundo!

Ejemplo # 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

Salida:

Error de tiempo de compilación.

2) protegido

Los usuarios usan la sintaxis 'protegida' cuando quieren usar este modificador de acceso.

  • Este modificador de acceso solo es accesible dentro del mismo paquete o de las mismas subclases en diferentes clases (pero los usuarios tienen que importar ese paquete donde se especificó).
  • El usuario no puede marcar la clase y las interfaces con un modificador de acceso 'protegido'. Sin embargo, los métodos y los campos pueden declararse como protegidos si los métodos y los campos están en una interfaz.

Por ejemplo:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

Salida:

Hola Mundo!

3) público

El usuario puede declarar una clase, método, constructor e interfaz con un modificador de acceso 'público', al que puede acceder por cualquier clase, método, constructor e interfaz dentro de diferentes paquetes.

  • Este modificador de acceso tiene el Ilimitado entre todos los modificadores.
  • Cuando cualquier clase, método o paquete marcado con un modificador de acceso 'público', donde sea accesible para todos desde cualquier parte del programa.
  • No hay limitaciones en el alcance de la clase de acceso 'público', los métodos.

Por ejemplo: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

Salida:

Hola Mundo!

4) privado

Cuando un método o variable marcada como modificadores de acceso 'privado', el código dentro de esa misma clase solo puede acceder a esos métodos y variables.

El usuario no puede declarar ninguna superclase con modificador de acceso 'privado' en el programa y si el usuario lo hace con cualquier clase, entonces hace que esa clase no sea accesible para ninguna otra clase en el mismo paquete, lo que hace que la clase no sea útil el usuario puede declarar variables y métodos dentro de la clase con un modificador de acceso 'privado' para que nadie pueda utilizar esas variables y métodos.

Ocasionalmente, las personas se confundieron con el modificador de acceso 'privado' y 'protegido', pero ambos son diferentes.

Por ejemplo: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

Salida:

error: display () tiene acceso privado en eduCBA obj.display ();

Conclusión

El modificador de acceso Java le brinda una ventaja adicional sobre su programa cuando lo hace público. Como estudiamos anteriormente, diferentes tipos de modificadores de acceso en JAVA y sus especificaciones.

Por lo tanto, tenga en cuenta cada vez que use uno de ellos como acceso de clase o interfaz, ya que no solo brindan acceso sino que también los anula. Si bien siempre existe una preocupación con respecto a la accesibilidad del método en el programa. Por ejemplo, si a una interfaz se le asigna el modificador de acceso 'predeterminado' en la superclase, se le permite anular los modificadores de acceso utilizados en la subclase del método.

Nota: La clase incluye variables, constructores, campos y métodos, y la interfaz incluye campos o métodos específicos.

Artículos recomendados

Esta es una guía de modificadores de acceso en Java. Aquí discutimos los diferentes tipos de modificadores de acceso en Java y sus especificaciones. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Programación Orientada a Objetos en Java
  2. Preguntas de la entrevista de Java
  3. ¿Qué es la sincronización en Java?
  4. Autoboxing y Unboxing en Java
  5. Modificadores de acceso en C ++ (tipos)
  6. Guía increíble para modificar modificadores en C #
  7. Modificadores de acceso en PHP
  8. JRE vs JVM | Las 8 principales diferencias con (infografía)