Dalam tutorial ini, kita akan belajar mengenai Java Access Modifier, jenisnya, dan cara menggunakannya dengan bantuan contoh.
Apakah Pengubah Akses?
Di Java, pengubah akses digunakan untuk mengatur aksesibilitas (keterlihatan) kelas, antaramuka, pemboleh ubah, kaedah, pembangun, anggota data, dan metode setter. Sebagai contoh,
class Animal ( public void method1() (… ) private void method2() (… ) )
Dalam contoh di atas, kami telah menyatakan 2 kaedah: kaedah1 () dan kaedah2 (). Di sini,
- kaedah1 adalah
public
- Ini bermaksud dapat diakses oleh kelas lain. - kaedah2 adalah
private
- Ini bermaksud ia tidak dapat diakses oleh kelas lain.
Perhatikan kata kunci public
dan private
. Ini adalah pengubah akses di Java. Mereka juga dikenali sebagai pengubah penglihatan.
Catatan : Anda tidak dapat menetapkan pengubah akses kaedah getter.
Jenis Pengubah Akses
Sebelum anda mengetahui mengenai jenis pengubah akses, pastikan anda mengetahui mengenai Pakej Java.
Terdapat empat kata kunci pengubah akses di Java dan mereka adalah:
Pengubah | Penerangan |
Lalai | deklarasi hanya dapat dilihat dalam pakej (pakej peribadi) |
Peribadi | pengisytiharan dapat dilihat di dalam kelas sahaja |
Dilindungi | deklarasi dapat dilihat dalam pakej atau semua subkelas |
Awam | deklarasi dapat dilihat di mana-mana |
Pengubah Akses Lalai
Sekiranya kita tidak secara jelas menentukan pengubah akses untuk kelas, kaedah, pemboleh ubah, dll, maka secara lalai pengubah akses lalai dipertimbangkan. Sebagai contoh,
package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )
Di sini, kelas Logger mempunyai pengubah akses lalai. Dan kelas itu dapat dilihat oleh semua kelas yang termasuk dalam pakej defaultPackage. Walau bagaimanapun, jika kita cuba menggunakan kelas Logger di kelas lain di luar defaultPackage, kita akan mendapat ralat kompilasi.
Pengubah Akses Peribadi
Apabila pemboleh ubah dan kaedah dinyatakan private
, mereka tidak dapat diakses di luar kelas. Sebagai contoh,
class Data ( // private variable private String name; ) public class Main ( public static void main(String() main)( // create an object of Data Data d = new Data(); // access private variable and field from another class d.name = "Programiz"; ) )
Dalam contoh di atas, kami telah menyatakan pemboleh ubah peribadi bernama nama dan kaedah peribadi bernama display()
. Semasa kita menjalankan program, kita akan mendapat ralat berikut:
Main.java:18: error: name has private access in Data d.name = "Programiz"; ^
Kesalahan dihasilkan kerana kami cuba mengakses pemboleh ubah peribadi dan kaedah peribadi kelas Data dari kelas Utama.
Anda mungkin tertanya-tanya bagaimana jika kita perlu mengakses pemboleh ubah peribadi tersebut. Dalam kes ini, kita boleh menggunakan kaedah getter dan setter. Sebagai contoh,
class Data ( private String name; // getter method public String getName() ( return this.name; ) // setter method public void setName(String name) ( this.name= name; ) ) public class Main ( public static void main(String() main)( Data d = new Data(); // access the private variable using the getter and setter d.setName("Programiz"); System.out.println(d.getName()); ) )
Keluaran :
Namanya Programiz
Dalam contoh di atas, kita mempunyai pemboleh ubah peribadi bernama. Untuk mengakses pemboleh ubah dari kelas luar, kami telah menggunakan kaedah: getName()
dan setName()
. Kaedah ini dipanggil getter dan setter di Java.
Di sini, kami telah menggunakan kaedah setter ( setName()
) untuk memberikan nilai kepada pemboleh ubah dan kaedah getter ( getName()
) untuk mengakses pemboleh ubah.
Kami telah menggunakan this
kata kunci di dalam setName () untuk merujuk kepada pemboleh ubah kelas. Untuk mengetahui lebih lanjut mengenai kata kunci ini, kunjungi Java Keyword ini.
Catatan : Kami tidak dapat menyatakan kelas dan antara muka sebagai peribadi di Java. Walau bagaimanapun, kelas bersarang boleh dinyatakan sebagai peribadi. Untuk mengetahui lebih lanjut, lawati Java Nested and Inner Class.
Pengubah Akses Terlindung
Apabila kaedah dan anggota data diisytiharkan protected
, kami dapat mengaksesnya dalam paket yang sama dan juga dari subkelas. Sebagai contoh,
class Animal ( // protected method protected void display() ( System.out.println("I am an animal"); ) ) class Dog extends Animal ( public static void main(String() args) ( // create an object of Dog class Dog dog = new Dog(); // access protected method dog.display(); ) )
Keluaran :
Saya binatang
Dalam contoh di atas, kami mempunyai kaedah terlindung yang dinamakan display()
di dalam kelas Haiwan. Kelas Haiwan diwarisi oleh kelas Anjing. Untuk mengetahui lebih lanjut mengenai pewarisan, kunjungi Java Warisan.
Kami kemudian membuat objek objek kelas Dog. Dengan menggunakan objek tersebut, kami cuba mengakses kaedah dilindungi kelas induk.
Oleh kerana kaedah terlindung dapat diakses dari kelas anak, kami dapat mengakses kaedah kelas Haiwan dari kelas Anjing.
Catatan : Kami tidak dapat menyatakan kelas atau antara muka protected
di Java.
Pengubah Akses Awam
Apabila kaedah, pemboleh ubah, kelas, dan sebagainya dinyatakan public
, maka kita dapat mengaksesnya dari mana saja. Pengubah akses awam tidak mempunyai batasan skop. Sebagai contoh,
// Animal.java file // public class public class Animal ( // public variable public int legCount; // public method public void display() ( System.out.println("I am an animal."); System.out.println("I have " + legCount + " legs."); ) ) // Main.java public class Main ( public static void main( String() args ) ( // accessing the public class Animal animal = new Animal(); // accessing the public variable animal.legCount = 4; // accessing the public method animal.display(); ) )
Keluaran :
Saya binatang. Saya mempunyai 4 kaki.
Di sini,
- Haiwan kelas awam boleh diakses dari kelas Utama.
- LegCount pemboleh ubah awam diakses dari kelas Utama.
- Kaedah awam
display()
diakses dari kelas Utama.
Akses Pengubah Diringkaskan dalam satu angka

Pengubah akses terutamanya digunakan untuk enkapsulasi. Saya dapat membantu kita mengawal bahagian program yang boleh diakses oleh ahli kelas. Sehingga penyalahgunaan data dapat dicegah. Untuk mengetahui lebih lanjut mengenai enkapsulasi, kunjungi Java Encapsulation.