অ্যাক্সেস মডিফায়ার ক্লাসের সদস্যদের দৃশ্যমানতা নিয়ন্ত্রণ করে, এনক্যাপসুলেশন প্রয়োগ করে যে কে তাদের পড়তে বা কল করতে পারে তা সীমিত করে।
| Modifier | Accessible from |
|---|
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 করা এনক্যাপসুলেশন বাতিল করে। সবচেয়ে সীমাবদ্ধ স্তর দিয়ে শুরু করুন এবং শুধুমাত্র প্রকৃত প্রয়োজন দেখা দিলে প্রসারিত করুন।
অ্যাক্সেস মডিফায়ার হল সুনির্দিষ্ট সরঞ্জাম যা এনক্যাপসুলেশনকে একটি নীতি থেকে কম্পাইলার যা পরীক্ষা করে এমন একটি প্রয়োগকৃত নিয়মে পরিণত করে।
একটি ছোট পাবলিক পৃষ্ঠ মানে কম কোড অভ্যন্তরীণ বিষয়ের উপর নির্ভর করতে পারে, তাই আপনি কলকারীদের ভেঙে ফেলা ছাড়াই স্বাধীনভাবে রিফ্যাক্টর করতে পারেন।