Chương trình Java để truy cập các thành viên riêng của một lớp

Trong ví dụ này, chúng ta sẽ học cách truy cập các phương thức và trường private của một lớp trong Java.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình Java sau:

  • Phương thức Java
  • Java Access Modifier

Ví dụ 1: Truy cập các trường riêng tư bằng phương thức getter và 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()); ) )

Đầu ra

 Tuổi: 24 Tên: Programiz

Trong ví dụ trên, chúng ta có các biến riêng có tên tuổi và tên. Ở đây, chúng tôi đang cố gắng truy cập các biến private từ lớp khác có tên Main.

Chúng tôi đã sử dụng phương thức getter và setter để truy cập các biến private. Đây,

  • các phương thức setter setAge()setName()khởi tạo các biến private
  • các phương thức getter getAge()getName()trả về giá trị của các biến private

Ví dụ 2: Truy cập trường riêng tư và phương pháp bằng 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(); ) ) )

Đầu ra

 Tên: Tên phương pháp Programiz: hiển thị Công cụ sửa đổi truy cập: riêng tư

Trong ví dụ này, chúng ta có một trường riêng được đặt tên và một phương thức riêng được đặt tên display(). Ở đây, chúng tôi đang sử dụng phản chiếu để truy cập các trường riêng tư và các phương thức của Kiểm tra lớp.

Để tìm hiểu về phản xạ, hãy truy cập Java Reflection.

thú vị bài viết...