యాక్సెస్ మాడిఫైయర్లు క్లాస్ సభ్యుల దృశ్యమానతను నియంత్రించి, ఎవరు వాటిని చదవగలరు లేదా పిలవగలరు అని నిర్బంధించడం ద్వారా ఎన్క్యాప్సులేషన్ను అమలు చేస్తాయి.
యాక్సెస్ మాడిఫైయర్లు క్లాస్ సభ్యుల దృశ్యమానతను నియంత్రించి, ఎవరు వాటిని చదవగలరు లేదా పిలవగలరు అని నిర్బంధించడం ద్వారా ఎన్క్యాప్సులేషన్ను అమలు చేస్తాయి.
| మాడిఫైయర్ | దాని నుండి యాక్సెస్ చేయగలిగిన |
|---|
public | ఎక్కడైనా |
protected | క్లాస్ మరియు దాని సబ్క్లాసులు |
private | కేవలం ప్రకటించిన క్లాస్ లోపల |
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 ప్రైవేట్ కాబట్టి బాహ్య కోడ్ దానిని చెడ్డిపోయకుండా చేయలేము; పబ్లిక్ getter ఏకైక విండో.
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 కట్టుబడిన ప్రైవేట్ లేదు — ఇది నామకరణ సంప్రదాయాలపై ఆధారపడుతుంది. Java/C# సంకలనం సమయంలో మాడిఫైయర్లను అమలు చేస్తాయి. Java పాకేజీ-ప్రైవేట్ (డిఫాల్ట్, కీవర్డ్ లేదు) కూడా కలిగి ఉంది.
సమస్తం public చేయడం ఎన్క్యాప్సులేషన్ను ఓడిపోయేస్తుంది. చాలా నిర్బంధిత స్థరానికి డిఫాల్ట్ చేసి, నిజమైన అవసరం వచ్చినప్పుడు మాత్రమే విస్తరించండి.
యాక్సెస్ మాడిఫైయర్లు ఎన్క్యాప్సులేషన్ను సూత్రం నుండి కంపైలర్ తనిఖీ చేసే నియమకు మార్చే కాంక్రీట్ సాధనం.
ఒక చిన్న పబ్లిక్ ఉపరితల ప్రాంతం అంటే అంతర్గత భాగాలపై తక్కువ కోడ్ ఆధారపడి ఉందని, కాబట్టి కాల్చేసేవారిని విచ్ఛిన్నం చేయకుండా సరళీకృతంగా సవరించవచ్చు.