Programa Java para mostrar diferentes niveles de acceso

Los niveles de acceso en un programa pueden ser introducidos por el concepto de Modificadores de Acceso. El modificador de acceso en un programa java se usa para especificar el alcance de un campo, método, constructor o incluso una clase. Por lo tanto, podemos cambiar el nivel de acceso de los campos, constructores, métodos y clases aplicándoles el modificador de acceso. Hay 4 tipos de modificadores de acceso, a saber:

Modificador de acceso Descripción
Público El nivel de acceso de un modificador público está en todas partes. Se puede acceder desde dentro de la clase, fuera de la clase, dentro del paquete e incluso fuera del paquete.
Privado El nivel de acceso de un modificador privado está solo dentro de la clase en la que se menciona el modificador. No se puede acceder desde fuera de esa clase.
Protegido El nivel de acceso de un modificador protegido está dentro del paquete (se menciona en) y fuera del paquete a través de la clase secundaria. Si no crea la clase secundaria, no se puede acceder a ella desde fuera del paquete.
Defecto El nivel de acceso de un modificador predeterminado solo está dentro del paquete. No se puede acceder desde fuera del paquete. Si no especifica ningún nivel de acceso, se configurará como predeterminado.

Implementación: usos del modificador de acceso

Ejemplo 1: uso de una sola clase para mostrar el alcance de los modificadores de acceso

Java

// java Program to illustrate One Single Class for Scope of
// Access modifiers
  
// Importing input output classes
import java.io.*;
  
// Main class
class GFG {
  
    // Method 1
    public static void method1()
    {
  
        // Print statement for method with public type
        System.out.println(
            "This method uses Public access modifier");
    }
  
    // Method 2
    private static void method2()
    {
  
        // Print statement for method with private type
        System.out.println(
            "This method uses Private access modifier");
    }
  
    // Method 3
    protected static void method3()
    {
  
        // Print statement for method with protected type
        System.out.println(
            "This method uses Protected access modifier");
    }
  
    // Method 4
    static void method4()
    {
  
        // Print statement for static default type method
        System.out.println(
            "This method uses Default access modifier");
    }
  
    // Method 5
    // Main driver method
    public static void main(String[] args)
    {
  
        // Display message only
        System.out.println(
            "Various access modifiers being used in the same class");
  
        // Calling all the above methods in main() method
        // body
        method1();
        method2();
        method3();
        method4();
    }
}
Producción

Various access modifiers being used in the same class
This method uses Public access modifier
This method uses Private access modifier
This method uses Protected access modifier
This method uses Default access modifier

Ejemplo 2: uso de dos clases diferentes en el mismo paquete para mostrar el alcance de los modificadores de acceso

Java

// Java Program to illustrate Use of Two Different Classes
// in the Same Package to Show the Scope of Access modifiers
  
// Importing input output classes
import java.io.*;
  
// Main class
// Helper class
class Helper {
  
    // Method 1
    public static void method1()
    {
  
        // Print statement whenever this method is called
        System.out.println(
            "This method uses Public access modifier");
    }
  
    // Method 2
    // Would not be accessed if set to "private"
    public static void method2()
    {
  
        // Print statement whenever this method is called
        System.out.println(
            "This method uses Private access modifier");
    }
  
    // Method 3
    protected static void method3()
    {
  
        // Print statement whenever this method is called
        System.out.println(
            "This method uses Protected access modifier");
    }
  
    // Method 4
    static void method4()
    {
  
        // Print statement whenever this method is called
        System.out.println(
            "This method uses Default access modifier");
    }
}
  
// Class 2
// Main class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        // Display message only
        System.out.println(
            "Various access modifiers being used in the same class");
  
        // Calling all the above methods in main() method
        // body
        Helper.method1();
        Helper.method2();
        Helper.method3();
        Helper.method4();
    }
}
Producción

Various access modifiers being used in the same class
This method uses Public access modifier
This method uses Private access modifier
This method uses Protected access modifier
This method uses Default access modifier

Nota:

En el método 2, si configuramos el modificador de acceso en «privado», obtenemos un error como:

prog.java:25: error: method2() tiene acceso privado en SecondClass

SecondClass.method2();// llamando al método2

( Motivo: no se puede acceder a miembros privados fuera de la clase )

Analicemos el escenario faltante anterior en el que accedemos a miembros privados de una clase. Podemos usar métodos getter y setter para obtener y establecer el valor de varios parámetros en Java.

Ejemplo 3: acceder a miembros de datos privados de una clase 

Java

// Java Program to access Private Members of a Class
// using Getter and Setter methods
  
// Class 1
// Helper class for AccessModifier
class Helper {
  
    // Member variables of this class
  
    // private fields
    private int age;
    private String name;
  
    // Method 1
    // Setter method used to set age, a private field
    public void setAge(int age) { this.age = age; }
  
    // Method 2
    // Setter method used to set name, a private field
    public void setName(String name) { this.name = name; }
  
    // Method 3
    // Getter method used to get age, a private field.
    public int getAge() { return this.age; }
  
    // Method 4
    // Getter method used to get name, a private field
    public String getName() { return this.name; }
}
  
// Class 2
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
  
        Helper ob = new Helper();
  
        // Set value of private fields
        ob.setAge(888);
  
        // Set value of private fields
        ob.setName("Geeksfor Geeks ");
  
        // Print and display the age using
        // get value of private fields
        System.out.println("Age: " + ob.getAge());
  
        // Print and display the name using
        // get value of private fields
        System.out.println("Name: " + ob.getName());
    }
}
Producción

Age: 888
Name: Geeksfor Geeks 

Conclusión: Entonces, hay 4 modificadores de acceso para especificar el alcance de los métodos, campos, clases o constructores, ilustrados con ejemplos de programas Java.

Publicación traducida automáticamente

Artículo escrito por igauravsharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *