Java-Programm für den Zugriff auf private Mitglieder einer Klasse

In diesem Beispiel lernen wir, auf die privaten Methoden und Felder einer Klasse in Java zuzugreifen.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:

  • Java-Methoden
  • Java Access Modifiers

Beispiel 1: Greifen Sie mit Getter- und Setter-Methoden auf private Felder zu

 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()); ) )

Ausgabe

 Alter: 24 Name: Programiz

Im obigen Beispiel haben wir private Variablen mit dem Namen age und name. Hier versuchen wir, auf die privaten Variablen einer anderen Klasse namens Main zuzugreifen.

Wir haben die Getter- und Setter-Methode verwendet, um auf die privaten Variablen zuzugreifen. Hier,

  • Der Setter methodisiert setAge()und setName()initialisiert die privaten Variablen
  • Der Getter Methoden getAge()und getName()gibt den Wert von privaten Variablen zurück

Beispiel 2: Greifen Sie mit Reflection auf das private Feld und die Methode zu

 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(); ) ) )

Ausgabe

 Name: Programiz Methodenname: Anzeige Zugriffsmodifikator: privat

In diesem Beispiel haben wir ein privates Feld mit dem Namen name und eine private Methode mit dem Namen display(). Hier verwenden wir die Reflexion, um auf die privaten Felder und Methoden der Klasse Test zuzugreifen.

Weitere Informationen zur Reflexion finden Sie unter Java Reflection.

Interessante Beiträge...