Java-programma om toegang te krijgen tot privéleden van een klas

In dit voorbeeld zullen we leren toegang te krijgen tot de privémethoden en velden van een klasse in Java.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-methoden
  • Java Access Modifiers

Voorbeeld 1: toegang tot privévelden met behulp van de methoden getter en 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()); ) )

Uitvoer

 Leeftijd: 24 Naam: Programiz

In het bovenstaande voorbeeld hebben we privévariabelen met de naam leeftijd en naam. Hier proberen we toegang te krijgen tot de privévariabelen van een andere klasse met de naam Main.

We hebben de getter- en setter-methode gebruikt om toegang te krijgen tot de privévariabelen. Hier,

  • de setter-methoden setAge()en setName()initialiseert de privé-variabelen
  • de getter-methoden getAge()en getName()retourneert de waarde van privévariabelen

Voorbeeld 2: Toegang tot het privéveld en de methode met behulp van 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(); ) ) )

Uitvoer

 Naam: Programmamethode Naam: display Toegangsmodificator: privé

In dit voorbeeld hebben we een privéveld met de naam naam en een privémethode met de naam display(). Hier gebruiken we de reflectie om toegang te krijgen tot de privévelden en methoden van de klasse Test.

Bezoek Java Reflection voor meer informatie over reflectie.

Interessante artikelen...