English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans cet exemple, nous allons apprendre à accéder aux méthodes et attributs privés des classes en Java.
Pour comprendre cet exemple, vous devriez comprendre ce qui suitProgrammation JavaSujet :
class Test { //Variable privée private int age; private String name; // Initialisation de age public void setAge(int age) { this.age = age; } // Initialisation de name public void setName(String name) {}} this.name = name; } // Accéder à age public int getAge() { return this.age; } // Accéder à name public String getName() { return this.name; } } class Main { public static void main(String[] args) { //Créer un objet Test Test test = new Test(); // Définir la valeur de la variable privée test.setAge(24); test.setName("w3codebox"); //Obtenir la valeur de la variable privée System.out.println("Âge : " + test.getAge()); System.out.println("Nom: " + test.getName()); } }
Output result
Âge : 24 Name: w3codebox
Dans cet exemple, nous avons des variables privées nommées age et name. Ici, nous essayons d'accéder aux variables privées depuis une autre classe nommée Main.
Nous avons utilisé les méthodes getter et setter pour accéder aux variables privées. Ici,
Méthodes setter - setAge() et setName() initialisent les variables privées
Méthodes getter - getAge() et getName() renvoient les valeurs des variables privées
import java.lang.reflect.*; class Test { //Variable privée private String name; //Méthode privée private void display() { System.out.println("Le nom est " + name); } } class Main { public static void main(String[] args) { try //Créer un objet Test Test test = new Test(); //Créer un objet nommé obj Class obj = test.getClass(); //Accéder aux variables privées Field field = obj.getDeclaredField("name"); // Rendre le champ privé accessible field.setAccessible(true); //Définir la valeur du champ field.set(test, "w3codebox"); //Obtenir la valeur du champ //et le convertir en chaîne de caractères String value = (String)field.get(test); System.out.println("Nom: " + value); //Accéder aux méthodes privées Method[] methods = obj.getDeclaredMethods(); System.out.println("Method name: " + methods[0].getName()); int modifier = methods[0].getModifiers(); System.out.println("Access modifier: " + Modifier.toString(modifier)); } catch(Exception e) { e.printStackTrace(); } } }
Output result
Name: w3codebox Method name: display Access modifier: private
In this example, we have a private field named name and a private method named display(). Here, we use reflection to access the private fields and methods of the Test class.
To understand reflection, please visitJava Reflection (Reflection).