Java programm klassi privaatsetele liikmetele juurdepääsemiseks

Selles näites õpime juurdepääsu Java-klassi klassi privaatsetele meetoditele ja väljadele.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:

  • Java meetodid
  • Java juurdepääsu modifikaatorid

Näide 1: juurdepääs eraväljadele getteri ja setteri meetodite abil

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

Väljund

 Vanus: 24 Nimi: Programiz

Ülaltoodud näites on meil privaatseid muutujaid nimega vanus ja nimi. Püüame siin pääseda privaatsetele muutujatele teistest Maini klassidest.

Oleme muutujate juurde pääsemiseks kasutanud meetodit getter ja setter. Siin,

  • setteri meetodid setAge()ja setName()lähtestab privaatsed muutujad
  • getter meetodid getAge()ja getName()tagastab eramuutujate väärtuse

Näide 2: pääsete privaatsele väljale ja meetodile, kasutades peegeldust

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

Väljund

 Nimi: Programiz Meetodi nimi: kuva Juurdepääsu teisendaja: privaatne

Selles näites on meil privaatne väli nimega nimi ja privaatne meetod nimega display(). Siin kasutame peegeldust, et pääseda juurde klassi Test privaatsetele väljadele ja meetoditele.

Peegelduse kohta lisateabe saamiseks külastage Java Reflectioni.

Huvitavad Artiklid...