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