java
Dalam tutorial ini, kita akan belajar tentang Java Access Modifier, jenisnya, dan cara menggunakannya dengan bantuan contoh.
Di Java, pengubah akses digunakan untuk mengatur aksesibilitas (visibilitas) kelas, antarmuka, variabel, metode, konstruktor, anggota data, dan metode penyetel. Misalnya,
class Animal {
public void method1() {...}
private void method2() {...}
}
Dalam contoh di atas, kita telah mendeklarasikan 2 metode:method1() dan method2(). Di sini,
public
- Artinya dapat diakses oleh kelas lain.private
- Artinya tidak bisa diakses oleh kelas lain.
Perhatikan kata kunci public
dan private
. Ini adalah pengubah akses di Jawa. Mereka juga dikenal sebagai pengubah visibilitas.
Catatan :Anda tidak dapat menyetel pengubah akses metode getter.
Sebelum Anda mempelajari tentang jenis pengubah akses, pastikan Anda mengetahui tentang Paket Java.
Ada empat kata kunci pengubah akses di Java dan mereka adalah:
Pengubah | Deskripsi |
Bawaan | deklarasi hanya terlihat di dalam paket (paket pribadi) |
Pribadi | deklarasi hanya terlihat di dalam kelas |
Dilindungi | deklarasi terlihat di dalam paket atau semua subclass |
Publik | deklarasi terlihat di mana-mana |
Jika kita tidak secara eksplisit menentukan pengubah akses untuk kelas, metode, variabel, dll, maka secara default pengubah akses default dipertimbangkan. Misalnya,
package defaultPackage;
class Logger {
void message(){
System.out.println("This is a message");
}
}
Di sini, Logger kelas memiliki pengubah akses default. Dan kelas terlihat oleh semua kelas yang termasuk dalam defaultPackage kemasan. Namun, jika kita mencoba menggunakan Logger kelas di kelas lain di luar defaultPackage, kita akan mendapatkan kesalahan kompilasi.
Ketika variabel dan metode dideklarasikan private
, mereka tidak dapat diakses di luar kelas. Misalnya,
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";
}
}
Pada contoh di atas, kita telah mendeklarasikan variabel private bernama name dan metode pribadi bernama display()
. Saat kita menjalankan program, kita akan mendapatkan error berikut:
Main.java:18: error: name has private access in Data
d.name = "Programiz";
^
Kesalahan terjadi karena kami mencoba mengakses variabel pribadi dan metode pribadi Data kelas dari Utama kelas.
Anda mungkin bertanya-tanya bagaimana jika kita perlu mengakses variabel pribadi tersebut. Dalam hal ini, kita dapat menggunakan metode getter dan setter. Misalnya,
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 :
The name is Programiz
Dalam contoh di atas, kami memiliki variabel pribadi bernama name . Untuk mengakses variabel dari kelas luar, kami telah menggunakan metode:getName()
dan setName()
. Metode ini disebut getter dan setter di Java.
Di sini, kami telah menggunakan metode setter (setName()
) untuk menetapkan nilai ke variabel dan metode pengambil (getName()
) untuk mengakses variabel.
Kami telah menggunakan this
kata kunci di dalam setName() untuk merujuk ke variabel kelas. Untuk mempelajari lebih lanjut tentang kata kunci ini, kunjungi Java Kata Kunci ini.
Catatan :Kami tidak dapat mendeklarasikan kelas dan antarmuka pribadi di Jawa. Namun, kelas bersarang dapat dinyatakan pribadi. Untuk mempelajari lebih lanjut, kunjungi Java Nested dan Inner Class.
Ketika metode dan anggota data dideklarasikan protected
, kita dapat mengaksesnya dalam paket yang sama dan juga dari subkelas. Misalnya,
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 :
I am an animal
Dalam contoh di atas, kami memiliki metode yang dilindungi bernama display()
di dalam Hewan kelas. Hewan kelas diwarisi oleh Anjing kelas. Untuk mempelajari lebih lanjut tentang pewarisan, kunjungi Warisan Java.
Kami kemudian membuat objek anjing dari Anjing kelas. Dengan menggunakan objek, kami mencoba mengakses metode yang dilindungi dari kelas induk.
Karena metode yang dilindungi dapat diakses dari kelas anak, kami dapat mengakses metode Animal kelas dari Anjing kelas.
Catatan :Kami tidak dapat mendeklarasikan kelas atau antarmuka protected
di Jawa.
Ketika metode, variabel, kelas, dan sebagainya dideklarasikan public
, maka kita dapat mengaksesnya dari mana saja. Pengubah akses publik tidak memiliki batasan ruang lingkup. Misalnya,
// 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 :
I am an animal. I have 4 legs.
Di sini,
display()
diakses dari Utama kelas.Pengubah akses terutama digunakan untuk enkapsulasi. Saya dapat membantu kami untuk mengontrol bagian program mana yang dapat mengakses anggota kelas. Sehingga penyalahgunaan data dapat dicegah. Untuk mempelajari lebih lanjut tentang enkapsulasi, kunjungi Enkapsulasi Java.
java
Antarmuka Koleksi Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java Collection dan subinterface-nya. Collection antarmuka adalah antarmuka akar kerangka koleksi Java. Tidak ada implementasi langsung dari antarmuka ini. Namun, ini diimplementasikan melalui subinterfacenya seperti L
Daftar Java Dalam tutorial ini, kita akan belajar tentang antarmuka Daftar di Java dan metodenya. Dalam Java, List interface adalah kumpulan terurut yang memungkinkan kita untuk menyimpan dan mengakses elemen secara berurutan. Ini memperluas Collection antarmuka. Kelas yang Menerapkan Daftar Seja
Antarmuka Antrian Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java Queue dan metodenya. Queue antarmuka kerangka koleksi Java menyediakan fungsionalitas struktur data antrian. Ini memperluas Collection antarmuka. Kelas yang Menerapkan Antrian Sejak Queue adalah antarmuka, kami t
Apa itu Access Modifier (Specifier) di C#? Pengubah Akses atau Access Specifier dalam C# adalah kata kunci yang digunakan untuk menentukan visibilitas properti atau metode kelas. Ini digunakan ketika Anda tidak ingin program lain melihat properti atau metode kelas. Pengubah akses membatasi akses