Access modifiers class members ਦੀ visibility ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦੇ ਹਨ, encapsulation ਨੂੰ ਲਾਗੂ ਕਰਦੇ ਹਨ ਕਿ ਕੌਣ ਉਹਨਾਂ ਨੂੰ ਪੜ੍ਹ ਜਾਂ ਕਾਲ ਕਰ ਸਕਦਾ ਹੈ।
Access modifiers class members ਦੀ visibility ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦੇ ਹਨ, encapsulation ਨੂੰ ਲਾਗੂ ਕਰਦੇ ਹਨ ਕਿ ਕੌਣ ਉਹਨਾਂ ਨੂੰ ਪੜ੍ਹ ਜਾਂ ਕਾਲ ਕਰ ਸਕਦਾ ਹੈ।
| Modifier | ਇੱਥੋਂ ਪਹੁੰਚਯੋਗ |
|---|
public | ਕਿਤੇ ਵੀ |
protected | ਕਲਾਸ ਅਤੇ ਇਸਦੀਆਂ subclasses |
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 private ਹੈ ਇਸ ਲਈ ਕੋਈ ਬਾਹਰੀ ਕੋਡ ਇਸ ਨੂੰ ਖਰਾਬ ਨਹੀਂ ਕਰ ਸਕਦਾ; 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 ਸਤਹ ਖੇਤਰ ਮਤਲਬ ਘੱਟ ਕੋਡ internals 'ਤੇ ਨਿਰਭਰ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ ਕਾਲਾਂ ਨੂੰ ਤੋੜਨ ਤੋਂ ਬਿਨਾ ਸੁਤੰਤਰਤਾ ਨਾਲ refactor ਕਰ ਸਕਦੇ ਹੋ।
ਵਿਸਤ੍ਰਿਤ ਜਵਾਬਾਂ ਨਾਲ IT ਇੰਟਰਵਿਊ ਸਵਾਲਾਂ ਦੀ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ — ਜੂਨੀਅਰ ਤੋਂ ਸੀਨੀਅਰ ਤੱਕ।
ਦਾਨ ਕਰੋ