Dans cet exemple, nous allons apprendre à accéder aux méthodes et champs privés d'une classe en Java.
Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation Java suivantes:
- Méthodes Java
- Modificateurs d'accès Java
Exemple 1: Accéder aux champs privés à l'aide des méthodes getter et setter
class Test ( // private variables private int age; private String name; // initialize age public void setAge(int age) ( this.age = age; ) // initialize name public void setName(String name) ( this.name = name; ) // access age public int getAge() ( return this.age; ) // access name public String getName() ( return this.name; ) ) class Main ( public static void main(String() args) ( // create an object of Test Test test = new Test(); // set value of private variables test.setAge(24); test.setName("Programiz"); // get value of private variables System.out.println("Age: " + test.getAge()); System.out.println("Name: " + test.getName()); ) )
Production
Âge: 24 ans Nom: Programiz
Dans l'exemple ci-dessus, nous avons des variables privées nommées age et name. Ici, nous essayons d'accéder aux variables privées à partir d'une autre classe nommée Main.
Nous avons utilisé la méthode getter et setter pour accéder aux variables privées. Ici,
- les méthodes setter
setAge()
etsetName()
initialise les variables privées - les méthodes getter
getAge()
etgetName()
retourne la valeur des variables privées
Exemple 2: Accéder au champ privé et à la méthode à l'aide de Reflection
import java.lang.reflect.*; class Test ( // private variables private String name; // private method private void display() ( System.out.println("The name is " + name); ) ) class Main ( public static void main(String() args) ( try ( // create an object of Test Test test = new Test(); // create an object of the class named Class Class obj = test.getClass(); // access the private variable Field field = obj.getDeclaredField("name"); // make private field accessible field.setAccessible(true); // set value of field field.set(test, "Programiz"); // get value of field // and convert it in string String value = (String)field.get(test); System.out.println("Name: " + value); // access the private method 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(); ) ) )
Production
Nom: Programiz Méthode Nom: affichage Modificateur d'accès: privé
Dans cet exemple, nous avons un champ privé nommé nom et une méthode privée nommée display()
. Ici, nous utilisons la réflexion pour accéder aux champs privés et aux méthodes de la classe Test.
Pour en savoir plus sur la réflexion, visitez Java Reflection.