Programme Java pour accéder aux membres privés d'une classe

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()et setName()initialise les variables privées
  • les méthodes getter getAge()et getName()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.

Articles intéressants...