English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (cola)

Conjuntos de Mapas de Java

Conjuntos de Java

Entrada y salida de Java (I/O)

Lector de Java/Writer

Otras temáticas de Java

Acceso a miembros privados de clases en programas de Java

Java ejemplos completos

En este ejemplo, aprenderemos a acceder a métodos y propiedades privadas de clases en Java.

Para entender este ejemplo, debes conocer lo siguienteProgramación en JavaTema:

Ejemplo1Acceder a propiedades privadas utilizando métodos getter y setter

class Test {
  //Variable privada
  private int age;
  private String name;
  // Inicialización de age
  public void setAge(int age) {
    this.age = age;
  }
  // Inicialización de name
  public void setName(String name) {}}
    this.name = name;
  }
  // Acceder a age
  public int getAge() {
    return this.age;
  }
  // Acceder a name
  public String getName() {
    return this.name;
  }
}
class Main {
  public static void main(String[] args) {
    //Crear un objeto Test
    Test test = new Test();
    // Establecer el valor de la variable privada
    test.setAge(24);
    test.setName("w3codebox");
    //Obtener el valor de la variable privada
    System.out.println("Edad: " + test.getAge());
    System.out.println("Nombre: " + test.getName());
  }
}

Resultado de la salida

Edad: 24
Nombre: w3codebox

En el ejemplo anterior, tenemos variables privadas llamadas age y name. Aquí, intentamos acceder a las variables privadas desde otra clase llamada Main.

Hemos utilizado métodos getter y setter para acceder a variables privadas. Aquí,

  • Métodos setter - setAge() y setName() inicializan las variables privadas

  • Métodos getter - getAge() y getName() devuelven el valor de las variables privadas

Ejemplo2: Usar reflexión para acceder a campos y métodos privados

import java.lang.reflect.*;
class Test {
  //Variable privada
  private String name;
  //Método privado
  private void display() {
    System.out.println("El nombre es " + name);
  }
}
class Main {
  public static void main(String[] args) {
    try {
      //Crear un objeto Test
      Test test = new Test();
      //Crear un objeto llamado obj
      Class obj = test.getClass();
      //Acceder a variables privadas
      Field field = obj.getDeclaredField("name");
      // Hacer accesible el campo privado
      field.setAccessible(true);
      //Establecer el valor del campo
      field.set(test, "w3codebox");
      //Obtener el valor del campo
      //y convertírselo a una cadena
      String value = (String)field.get(test);
      System.out.println("Nombre: " + value);
      //Acceder a métodos privados
      Method[] methods = obj.getDeclaredMethods();
      System.out.println("Nombre del método: ", + methods[0].getName());
      int modifier = methods[0].getModifiers();
      System.out.println("Modificador: ", + Modifier.toString(modifier));
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
}

Resultado de la salida

Nombre: w3codebox
Nombre del método: display    
Modificador: private

En este ejemplo, tenemos un campo privado llamado name y un método privado llamado display(). Aquí, usamos la reflexión para acceder a los campos privados y métodos de la clase Test.

Para entender la reflexión, visiteJava Reflection (reflexión).

Java ejemplos completos