Modifier akses mengontrol visibilitas anggota kelas, menerapkan enkapsulasi dengan membatasi siapa yang dapat membaca atau memanggil mereka.
| Modifier | Dapat diakses dari |
|---|
public | Mana saja |
protected | Kelas dan subkelasnya |
private | Hanya dalam kelas penyataan |
public class Employee {
private double salary; // internal — only Employee touches it
protected String department; // subclasses may use it
public String name; // open to all
public double getSalary() { // controlled, public read access
return salary;
}
}
salary bersifat pribadi sehingga tidak ada kode eksternal yang dapat merusaknya; getter publik adalah satu-satunya jendela.
class Demo:
def __init__(self):
self.public = 1
self._protected = 2 # convention only ("don't touch")
self.__private = 3 # name-mangled to _Demo__private
Python tidak memiliki private yang diterapkan — mengandalkan konvensi penamaan. Java/C# menerapkan modifier pada waktu kompilasi. Java juga memiliki package-private (default, tanpa kata kunci).
Menjadikan semua public mengalahkan enkapsulasi. Default ke tingkat paling ketat dan perluas hanya ketika kebutuhan nyata muncul.
Modifier akses adalah alat konkret yang mengubah enkapsulasi dari sekadar prinsip menjadi aturan yang diterapkan yang diperiksa compiler.
Luas permukaan publik yang kecil berarti lebih sedikit kode yang dapat bergantung pada detail internal, jadi Anda dapat melakukan refactoring dengan bebas tanpa memecahkan pemanggil.