अॅक्सेस मॉडिफायर क्लास सदस्यांची दृश्यमानता नियंत्रित करतात, एनकॅप्सुलेशन लागू करतात आणि कोण वाचू किंवा कॉल करू शकतात हे मर्यादित करतात.
| मॉडिफायर | कुठून प्रवेशयोग्य |
|---|
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 मध्ये package-private (डिफॉल्ट, कोणतेही की-शब्द नाही) देखील आहे.
सर्वकाही public केल्याने एनकॅप्सुलेशन नष्ट होते. सर्वाधिक प्रतिबंधक स्तर वापरून सुरू करा आणि केव्हा वास्तविक गरज दिसून आले तरच विस्तारित करा.
अॅक्सेस मॉडिफायर हे ठोस साधन आहे जे एनकॅप्सुलेशनला तत्वापासून कंपाइलर द्वारे तपासलेल्या सक्तीच्या नियमात बदलते.
कमी जनसंख्या पृष्ठभाग म्हणजे कमी कोड आंतरिकांवर अवलंबून असू शकते, म्हणून आप कॉलर्सला तोडल्याशिवाय मुक्तपणे रीफॅक्टर करू शकता.