Vipi vya ufidhuli vinakamatisha macho ya wanachama wa darasa, kutekeleza ujumbe kwa kuzuia nani anayeweza kusoma au kuita hizo.
| Kipi | Kinachoweza kufidhiliwa kutoka |
|---|
public | Mahali popote |
protected | Darasa na subclasses zake |
private | Tu ndani ya darasa linaloibainisha |
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 ni private kwa hiyo hakuna msimbo wa nje unayoweza kuibomoa; getter ya umma ni dirisha pekee.
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 haina private iliyolazimishwa — inategemea mipango ya kutunga jina. Java/C# kutekeleza vipi wakati wa kusanamu. Java pia ina package-private (chaguo la kawaida, hakuna neno muhimu).
Kufanya kila kitu public kunakamatisha ujumbe. Chagua kiwango cha mipango kali zaidi na kupanua tu wakati hitaji halisi linaonekana.
Vipi vya ufidhuli ni zana halisi inayobadilisha ujumbe kutoka kanuni kwenda kanuni ambayo compiler inaangalia.
Eneo dogo la umma linamaanisha kuwa msimbo mdogo unategemea ndani, kwa hivyo unaweza kujenga tena kwa uhuru bila kukamatisha waita.