Java Access Modifier

Java mengenal empat buah access modifier—diurutkan dari cakupan tersempit—yakni private, default1, protected, dan public. Access modifier ini berperan untuk membatasi pengaksesan elemen-elemen di dalam sebuah kelas sehingga tidak dapat dimodifikasi dari kelas lain yang mana biasanya modifikasi tersebut dapat menimbulkan kebocoran keamanan.

Ketersediaan

Pengaksesanprivatedefaultprotectedpublic
dalam kelasyayayaya
luar kelas, dalam paket, anak-yayaya
luar kelas, dalam paket, bukan anak-yayaya
luar kelas, luar paket, anak--yaya
luar kelas, luar paket, bukan anak---ya

Contoh

class Human {

    private String name;
    private boolean isMale;

    public Human(String name, boolean isMale) {
        // Constructor is always `public`
        this.name = name;
        this.isMale = isMale;
    }

    public String getName() {
        return this.name;
    }

    public String getGender() {
        if (this.isMale) return "Laki-laki";
        else return "Perempuan";
    }

}

Variabel name dan isMale tidak dapat diakses secara langsung melainkan harus melalui fungsi getName() dan getGender() sehingga variabel tersebut tidak dapat diubah-ubah nilainya dari kelas lain. Prinsip melapisi elemen-elemen kelas menggunakan access modifier seperti ini selanjutnya disebut dengan ‘enkapsulasi’.


  1. Khusus untuk access modifier default biasanya tidak ditulis. 

⚑ Tanggapan