Program Java untuk Mengakses anggota privat kelas

Dalam contoh ini, kita akan belajar mengakses metode privat dan bidang kelas di Java.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Java berikut:

  • Metode Java
  • Pengubah Akses Java

Contoh 1: Akses bidang pribadi menggunakan metode pengambil dan penyetel

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

Keluaran

 Umur: 24 Nama: Programiz

Dalam contoh di atas, kami memiliki variabel privat bernama usia dan nama. Di sini, kami mencoba mengakses variabel privat dari kelas lain bernama Main.

Kami telah menggunakan metode pengambil dan penyetel untuk mengakses variabel privat. Sini,

  • metode penyetel setAge()dan setName()menginisialisasi variabel privat
  • metode pengambil getAge()dan getName()mengembalikan nilai variabel privat

Contoh 2: Akses bidang pribadi dan metode menggunakan Refleksi

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

Keluaran

 Nama: Programiz Nama Metode: tampilan Access Modifier: private

Dalam contoh ini, kami memiliki bidang pribadi bernama nama dan metode pribadi bernama display(). Di sini, kami menggunakan refleksi untuk mengakses bidang pribadi dan metode Tes kelas.

Untuk mempelajari tentang refleksi, kunjungi Java Reflection.

Artikel yang menarik...