Access modifiers ले class members को visibility नियन्त्रण गर्छन्, encapsulation लागु गरेर कसले तिनलाई पढ्न वा कल गर्न सक्छ भन्ने सीमित गर्छन्।
Access modifiers ले class members को visibility नियन्त्रण गर्छन्, encapsulation लागु गरेर कसले तिनलाई पढ्न वा कल गर्न सक्छ भन्ने सीमित गर्छन्।
| Modifier | यहाँबाट पहुँचयोग्य |
|---|
public | कहीँपनि |
protected | यस class र यसका subclasses |
private | केवल घोषणा गरिएको class भित्र |
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 private छ त्यसैले कुनै पनि बाहिरको code ले यसलाई खराब गर्न सक्दैन; public 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 छैन — यो naming conventions मा निर्भर गर्छ। Java/C# ले compile time मा modifiers लागु गर्छन्। Java मा package-private पनि छ (default, कुनै keyword छैन)।
सबै कुरा public बनाउनु encapsulation लाई परास्त गर्छ। सबैभन्दा प्रतिबन्धात्मक स्तरमा पूर्वनिर्धारित गर्नुहोस् र केवल वास्तविक आवश्यकता देखा परेपछि विस्तृत गर्नुहोस्।
Access modifiers वह ठोस उपकरण हुन् जो encapsulation लाई एक सिद्धान्तबाट compiler ले जाँच गरिने लागु गरिएको नियम बनाउछन्।
एक सानो public सतह क्षेत्र मतलब कम code ले internals मा निर्भर हुन सक्छ, त्यसैले तपाईँ कल गर्नेहरूलाई भाँच्न बिना स्वतन्त्रताका साथ refactor गर्न सक्नुहुन्छ।