एक्सेस मॉडिफायर क्लास सदस्यों की दृश्यता को नियंत्रित करते हैं, encapsulation को लागू करते हैं कि कौन उन्हें पढ़ सकता है या कॉल कर सकता है।
एक्सेस मॉडिफायर क्लास सदस्यों की दृश्यता को नियंत्रित करते हैं, encapsulation को लागू करते हैं कि कौन उन्हें पढ़ सकता है या कॉल कर सकता है।
| मॉडिफायर | यहाँ से सुलभ |
|---|
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 के पास लागू किया गया private नहीं है — यह नामकरण सम्मेलन पर निर्भर करता है। Java/C# कंपाइलर समय पर मॉडिफायर लागू करते हैं। Java में package-private भी है (डिफ़ॉल्ट, कोई कीवर्ड नहीं)।
सब कुछ public बनाना encapsulation को नष्ट कर देता है। सबसे प्रतिबंधक स्तर पर डिफ़ॉल्ट करें और केवल तभी विस्तारित करें जब वास्तविक आवश्यकता हो।
एक्सेस मॉडिफायर वह ठोस उपकरण हैं जो encapsulation को एक सिद्धांत से एक लागू किए गए नियम में बदलते हैं जो कंपाइलर जाँचता है।
छोटी सार्वजनिक सतह का मतलब है कि कम कोड आंतरिक विवरण पर निर्भर हो सकता है, इसलिए आप कॉलर्स को तोड़े बिना स्वतंत्र रूप से refactor कर सकते हैं।
विस्तृत उत्तरों के साथ IT इंटरव्यू प्रश्नों की एक लाइब्रेरी — जूनियर से सीनियर तक।
दान करें