English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Completa guida di esempio Java
在此示例中,我们将学习访问Java中类的私有方法和属性。
要理解此示例,您应该了解以下Java编程主题:
class Test { //Variabile privata private int age; private String name; // 初始化 age public void setAge(int age) { this.age = age; } // 初始化 name public void setName(String name) { this.name = name; } // 访问 age public int getAge() { return this.age; } //Accedi a name public String getName() { return this.name; } } class Main { public static void main(String[] args) { //Crea un oggetto Test Test test = new Test(); //Imposta il valore della variabile privata test.setAge(24); test.setName("w3codebox"); //Ottieni il valore della variabile privata System.out.println("Età: " + test.getAge()); System.out.println("Nome: " + test.getName()); } }
Risultato di output
Età: 24 Nome: w3codebox
Nell'esempio sopra, abbiamo variabili private chiamate age e name. Qui, cerchiamo di accedere alle variabili private da un'altra classe chiamata Main.
Abbiamo già utilizzato i metodi getter e setter per accedere alle variabili private. Ecco,
Metodo setter - setAge() e setName() inizializzano le variabili private
Metodo getter - getAge() e getName() restituiscono i valori delle variabili private
import java.lang.reflect.*; class Test { //Variabile privata private String name; //Metodo privato private void display() { System.out.println("Il nome è " + name); } } class Main { public static void main(String[] args) { try { //Crea un oggetto Test Test test = new Test(); //Crea un oggetto chiamato obj Class obj = test.getClass(); //Accedi al variabile privato Field field = obj.getDeclaredField("name"); //Rendi accessibile il campo privato field.setAccessible(true); //Imposta il valore del campo field.set(test, "w3codebox"); //Ottieni il valore del campo //Convertilo in stringa String value = (String)field.get(test); System.out.println("Nome: " + value); //Accedi al metodo privato Method[] methods = obj.getDeclaredMethods(); System.out.println("Nome del metodo: " + methods[0].getName()); int modifier = methods[0].getModifiers(); System.out.println("Modificatore di accesso: " + Modifier.toString(modifier)); } catch(Exception e) { e.printStackTrace(); } } }
Risultato di output
Nome: w3codebox Nome del metodo: display Modificatore di accesso: private
In questo esempio, abbiamo un campo privato di nome name e un metodo privato di nome display(). Qui, utilizziamo la riflessione per accedere ai campi e ai metodi privati della classe Test.
Per comprendere la riflessione, visitareReflection Java (reflessione)。