logo

Modificadores de acceso en Java

En Java, los modificadores de acceso ayudan a restringir el alcance de una clase, constructor, variable, método o miembro de datos. Proporciona seguridad, accesibilidad, etc. al usuario dependiendo del modificador de acceso utilizado con el elemento. Aprendamos sobre los modificadores de acceso de Java, sus tipos y los usos de los modificadores de acceso en este artículo.

Tipos de modificadores de acceso en Java

Hay cuatro tipos de modificadores de acceso disponibles en Java:

  1. Predeterminado: no se requiere palabra clave
  2. Privado
  3. Protegido
  4. Público

1. Modificador de acceso predeterminado

Cuando no se especifica ningún modificador de acceso para una clase, método o miembro de datos, se dice que tiene el por defecto modificador de acceso de forma predeterminada. Los miembros de datos, clases o métodos que no se declaran utilizando ningún modificador de acceso, es decir, que tienen modificadores de acceso predeterminados, son accesibles. solo dentro del mismo paquete .



En este ejemplo, crearemos dos paquetes y las clases en los paquetes tendrán los modificadores de acceso predeterminados e intentaremos acceder a una clase de un paquete desde una clase del segundo paquete.

Programa 1:

Java
// Java program to illustrate default modifier  package p1;  // Class Geek is having Default access modifier  class Geek  {   void display()   {   System.out.println('Hello World!');   }  }>


Programa 2:

tipos de arbol binario
Java
// Java program to illustrate error while  // using class from different package with  // default modifier  package p2;  import p1.*;  // This class is having default access modifier  class GeekNew  {   public static void main(String args[])   {   // Accessing class Geek from package p1   Geek obj = new Geek();   obj.display();   }  }>

Producción:

Compile time error>

2. Modificador de acceso privado

El modificador de acceso privado se especifica mediante la palabra clave privado . Los métodos o miembros de datos declarados como privados sólo son accesibles dentro de la clase en el que se declaran.

  • Cualquier otro clase de el el mismo paquete no podrá acceder estos miembros.
  • Las clases o interfaces de nivel superior no se pueden declarar como privadas porque
    • privado significa sólo visible dentro de la clase adjunta.
    • protegido significa solo visible dentro de la clase adjunta y cualquier subclase

Por lo tanto, estos modificadores en términos de aplicación a clases, se aplican solo a clases anidadas y no a clases de nivel superior.

En este ejemplo, crearemos dos clases A y B dentro del mismo paquete p1. Declararemos un método en la clase A como privado e intentaremos acceder a este método desde la clase B y ver el resultado.

factoriales en java
Java
// Java program to illustrate error while // Using class from different package with // Private Modifier package p1; // Class A class A {  private void display()  {  System.out.println('techcodeview.com');  } } // Class B class B {  public static void main(String args[])  {  A obj = new A();  // Trying to access private method  // of another class  obj.display();  } }>

Producción:

error: display() has private access in A  obj.display();>

3. Modificador de acceso protegido

El modificador de acceso protegido se especifica mediante la palabra clave protegido .

Los métodos o miembros de datos declarados como protegidos son accesible dentro del mismo paquete o subclases en diferentes paquetes.

En este ejemplo, crearemos dos paquetes p1 y p2. La clase A en p1 se hace pública, para acceder a ella en p2. La visualización del método en la clase A está protegida y la clase B se hereda de la clase A y luego se accede a este método protegido creando un objeto de clase B.

Programa 1:

Java
// Java Program to Illustrate // Protected Modifier package p1; // Class A public class A {  protected void display()  {  System.out.println('techcodeview.com');  } }>


Programa 2:

Java
// Java program to illustrate // protected modifier package p2; // importing all classes in package p1 import p1.*;  // Class B is subclass of A class B extends A {  public static void main(String args[])  {  B obj = new B();  obj.display();  } }>

Producción:

techcodeview.com>

Modificador de acceso público

El modificador de acceso público se especifica mediante la palabra clave público .

  • El modificador de acceso público tiene la alcance más amplio entre todos los demás modificadores de acceso.
  • Las clases, métodos o miembros de datos que se declaran como públicos son accesible desde todas partes en el programa. No hay restricciones en el alcance de los miembros de datos públicos.

Programa 1:

Java
// Java program to illustrate  // public modifier  package p1;  public class A  {  public void display()   {   System.out.println('techcodeview.com');   }  }>

Programa 2:

Java
package p2; import p1.*; class B {  public static void main(String args[])  {  A obj = new A();  obj.display();  } }>

Producción:

techcodeview.com>

Puntos importantes:

  • Si otros programadores usan su clase, intente usar el nivel de acceso más restrictivo que tenga sentido para un miembro en particular. Utilice privado a menos que tenga una buena razón para no hacerlo.
  • Evite los campos públicos excepto las constantes.

Algoritmo para usar modificador de acceso en Java

Aquí hay un algoritmo básico para usar modificadores de acceso en Java:

  • Definir una clase: Cree una clase que represente el objeto que desea administrar.
  • Definir variables de instancia: Dentro de la clase, defina variables de instancia que representen los datos que desea administrar.
  • Especifique un modificador de acceso: para cada variable de instancia, especifique un modificador de acceso que determine la visibilidad de la variable. Los tres modificadores de acceso principales en Java son privado, protegido y público.
  • Utilice privado para variables a las que solo se debería poder acceder dentro de la clase: Si desea evitar el acceso a una variable desde fuera de la clase, utilice el modificador de acceso privado. Este es el modificador de acceso más restrictivo y proporciona el mayor nivel de encapsulación.
  • Utilice protected para variables que deberían ser accesibles dentro de la clase y sus subclases. : Si desea permitir el acceso a una variable desde dentro de la clase y sus subclases, utilice el modificador de acceso protegido. Esto es menos restrictivo que el privado y proporciona cierto nivel de herencia.
  • Utilice público para variables a las que debería poder accederse desde cualquier lugar : Si desea permitir el acceso a una variable desde cualquier lugar, utilice el modificador de acceso público. Este es el modificador de acceso menos restrictivo y proporciona la menor cantidad de encapsulación.
  • Utilice métodos de acceso y mutador para gestionar el acceso a las variables: Para acceder y modificar las variables, utilice los métodos de acceso (getter) y mutador (setter), incluso si las variables tienen un modificador de acceso público. Esto proporciona un nivel de abstracción y hace que su código sea más fácil de mantener y comprobable.

Preguntas frecuentes sobre modificadores de acceso

1. ¿Qué son los modificadores de acceso en Java?

Los modificadores de acceso en Java son las palabras clave que se utilizan para controlar el uso de los métodos, constructores, campos y métodos de una clase.

para cada java

2. ¿Qué es nulo en Java?

Void en Java se utiliza para no especificar ningún valor de retorno con el método.

3. ¿Cuáles son los 12 modificadores en Java?

12 Los modificadores en Java son público, privado, protegido, predeterminado, final, sincronizado, abstracto, nativo, estricto, transitorio y volátil.