એક્સેસ મોડિફાયર્સ ક્લાસ સદસ્યોની દૃશ્યતા નિયંત્રિત કરે છે, એનકેપ્સુલેશનને લાગુ કરે છે કે કોણ તેમને વાંચી શકે અથવા તેમને કૉલ કરી શકે તે મર્યાદિત કરીને.
એક્સેસ મોડિફાયર્સ ક્લાસ સદસ્યોની દૃશ્યતા નિયંત્રિત કરે છે, એનકેપ્સુલેશનને લાગુ કરે છે કે કોણ તેમને વાંચી શકે અથવા તેમને કૉલ કરી શકે તે મર્યાદિત કરીને.
| મોડિફાયર | આમાંથી એક્સેસ યોગ્ય |
|---|
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 બનાવવું એનકેપ્સુલેશનને હરાવે છે. સૌથી મર્યાદક સ્તર તરફ જોરાવ કરો અને માત્ર જ્યારે સત્ય જરૂર દેખાય ત્યારે વિસ્તૃત કરો.
એક્સેસ મોડિફાયર્સ કોંક્રીટ ટૂલ છે જે એનકેપ્સુલેશનને સિદ્ધાંતથી કમ્પાઇલર ચેક કરે છે તે બળવું નિયમમાં ફેરવે છે.
શોટ જાહેર સપાટીનો વિસ્તાર એટલે ઓછું કોડ આંતરિક બાબતો પર આધાર રાખી શકે છે, તેથી તમે બોલાવનારોને તોડ્યા વિના મુક્તપણે પુનઃરચના કરી શકો છો.