Java programma, lai piekļūtu klases privātiem dalībniekiem

Šajā piemērā mēs iemācīsimies piekļūt Java privātajām metodēm un laukiem.

Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:

  • Java metodes
  • Java piekļuves modifikatori

1. piemērs: Piekļūstiet privātajiem laukiem, izmantojot getter un setter metodes

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

Rezultāts

 Vecums: 24 Nosaukums: Programiz

Iepriekš minētajā piemērā mums ir privāti mainīgie, kuru nosaukums ir vecums un nosaukums. Šeit mēs cenšamies piekļūt privātajiem mainīgajiem no citām klasēm ar nosaukumu Main.

Mēs izmantojām getter and setter metodi, lai piekļūtu privātajiem mainīgajiem. Šeit,

  • setera metodes setAge()un setName()inicializē privātos mainīgos
  • getter metodes getAge()un getName()atgriež privāto mainīgo vērtību

2. piemērs: Piekļūstiet privātajam laukam un metodei, izmantojot refleksiju

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

Rezultāts

 Nosaukums: Programiz Metodes nosaukums: displejs Piekļuves pārveidotājs: privāts

Šajā piemērā mums ir privāts lauks ar nosaukumu nosaukums un privāta metode ar nosaukumu display(). Šeit mēs izmantojam pārdomas, lai piekļūtu klases privātajiem laukiem un metodēm.

Lai uzzinātu vairāk par refleksiju, apmeklējiet Java Reflection.

Interesanti raksti...