Modifikatorët e aksesit kontrollojnë dukshmërinë e anëtarëve të klasës, duke zbatuar enkapsulimin duke kufizuar se kush mund t'i lexojë ose t'i thërrasë ato.
| Modifikator | I arritshëm nga |
|---|
public | Kudo |
protected | Klasa dhe nënklasesave të saj |
private | Vetëm brenda klasës deklaruese |
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 është private kështu që asnjë kod i jashtëm nuk mund ta korruptojë atë; getter publik është dritarja e vetme.
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 nuk ka private të zbatuar — mbështetet në konventa emërtimi. Java/C# zbatojnë modifikatorët në kohën e përpilimit. Java gjithashtu ka package-private (parazgjedhja, pa fjalëkëlim).
Fakimi i gjithçkaje public shkatërron enkapsulimin. Parazgjidhni nivelin më shtrëngues dhe zgjeroni vetëm kur shfaqet një nevojë reale.
Modifikatorët e aksesit janë mjeti konkret që shndërron enkapsulimin nga një parim në një rregull që përpilues verifikimin.
Një sipërfaqe publike e vogël do të thotë se më pak kod varet nga brendësia, kështu që mund të ristrukturoni lirisht pa e thyer thirrësit.