English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы изучим доступ к частным методам и свойствам класса в Java.
Чтобы понять этот пример, вы должны знать следующееJava-программированиеТема:
class Test { //приватная переменная private int age; private String name; // инициализация age public void setAge(int age) { this.age = age; } // инициализация name public void setName(String name) { this.name = name; } // доступ к age public int getAge() { return this.age; } //доступ к name public String getName() { return this.name; } } class Main { public static void main(String[] args) { //создать объект Test Test test = new Test(); //установить значение приватной переменной test.setAge(24); test.setName("w3codebox"); //получить значение приватной переменной System.out.println("Age: " + test.getAge()); System.out.println("Name: " + test.getName()); } }
Результат вывода
Возраст: 24 Имя: w3codebox
В предыдущем примере у нас есть приватные переменные с именами age и name. Здесь мы пытаемся получить доступ к приватным переменным из другого класса с именем Main.
Мы уже использовали методы getter и setter для доступа к приватным переменным. Здесь,
методы setter - setAge() и setName() инициализируют приватные переменные
методы getter - getAge() и getName() возвращают значения приватных переменных
import java.lang.reflect.*; class Test { //приватная переменная private String name; //приватный метод private void display() { System.out.println("The name is " + name); } } class Main { public static void main(String[] args) { try { //создать объект Test Test test = new Test(); //создать объект с именем obj Class obj = test.getClass(); //доступ к приватной переменной Field field = obj.getDeclaredField("name"); //сделать приватное поле доступным field.setAccessible(true); //установить значение поля field.set(test, "w3codebox"); //получить значение поля //и преобразовать его в строку String value = (String)field.get(test); System.out.println("Name: " + value); //доступ к приватному методу Method[] methods = obj.getDeclaredMethods(); System.out.println("Имя метода: " + methods[0].getName()); int modifier = methods[0].getModifiers(); System.out.println("Доступ к модификаторам: " + Modifier.toString(modifier)); } catch(Exception e) { e.printStackTrace(); } } }
Результат вывода
Имя: w3codebox Имя метода: display Доступ к модификаторам: private
В этом примере у нас есть частное поле name и частный метод display(). Здесь мы используем reflection для доступа к частным полям и методам класса Test.
Чтобы узнать о reflection, пожалуйста, посетитеJava Reflection (отражение)。