অ্যাক্সেস মডিফায়ার হলো প্রোগ্রামিংয়ে ব্যবহৃত এমন কিছু কীওয়ার্ড যা ক্লাসের ভেরিয়েবল এবং মেথডের অ্যাক্সেসibilটিকে নিয়ন্ত্রণ করে। সি++ এ তিন ধরনের অ্যাক্সেস মডিফায়ার রয়েছে: private, public, এবং protected। এগুলি ক্লাসের সদস্যদের অ্যাক্সেস সীমা নির্ধারণ করে এবং প্রোগ্রামে ডেটা সুরক্ষায় গুরুত্বপূর্ণ ভূমিকা পালন করে।
১. private অ্যাক্সেস মডিফায়ার
private অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত কোনো মেম্বার ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেস করা যায় না। শুধুমাত্র ক্লাসের ভেতর থেকে এবং ক্লাসের মেথডের মাধ্যমেই এই ধরনের মেম্বারগুলো অ্যাক্সেস করা সম্ভব। এটি ডেটাকে সুরক্ষিত রাখতে সাহায্য করে।
উদাহরণ:
#include <iostream>
using namespace std;
class Car {
private:
int year; // private মেম্বার
public:
void setYear(int y) { // setter মেথড
year = y;
}
int getYear() { // getter মেথড
return year;
}
};
int main() {
Car myCar;
myCar.setYear(2020); // setYear এর মাধ্যমে year সেট করা হচ্ছে
cout << "Year: " << myCar.getYear() << endl; // getYear এর মাধ্যমে year পাওয়া যাচ্ছে
return 0;
}
ব্যাখ্যা:
- এখানে
yearভেরিয়েবলটিprivate, তাই সরাসরিmyCar.yearদ্বারা সেটি অ্যাক্সেস করা যাবে না। setYearএবংgetYearমেথডগুলো ব্যবহার করেyearএর মান সেট ও পড়া হচ্ছে।
২. public অ্যাক্সেস মডিফায়ার
public অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত মেম্বারগুলো ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেসযোগ্য। এগুলি ক্লাসের যে কোনো অবজেক্ট থেকে অ্যাক্সেস করা যায়।
উদাহরণ:
#include <iostream>
using namespace std;
class Car {
public:
int year; // public মেম্বার
};
int main() {
Car myCar;
myCar.year = 2020; // year সরাসরি অ্যাক্সেস ও সেট করা
cout << "Year: " << myCar.year << endl;
return 0;
}
ব্যাখ্যা:
- এখানে
yearভেরিয়েবলটিpublic, তাই সরাসরিmyCar.yearদ্বারা সেটি অ্যাক্সেস ও সেট করা সম্ভব। publicমেম্বার হিসেবেyearসরাসরি ক্লাসের বাইরেও ব্যবহার করা যায়।
৩. protected অ্যাক্সেস মডিফায়ার
protected অ্যাক্সেস মডিফায়ার দ্বারা চিহ্নিত মেম্বারগুলো শুধুমাত্র ক্লাসের ভেতরে এবং সেই ক্লাস থেকে ইনহেরিট করা ক্লাসে অ্যাক্সেসযোগ্য। কিন্তু, ক্লাসের বাইরে থেকে সরাসরি অ্যাক্সেস করা যায় না। এটি ইনহেরিটেন্সের ক্ষেত্রে ডেটা সুরক্ষিত রাখতে সহায়ক।
উদাহরণ:
#include <iostream>
using namespace std;
class Vehicle {
protected:
string brand; // protected মেম্বার
public:
void setBrand(string b) {
brand = b;
}
};
class Car : public Vehicle {
public:
void display() {
cout << "Brand: " << brand << endl; // protected মেম্বার subclass এ অ্যাক্সেসযোগ্য
}
};
int main() {
Car myCar;
myCar.setBrand("Toyota");
myCar.display(); // Displaying the brand
return 0;
}
ব্যাখ্যা:
- এখানে
brandমেম্বারটিprotected, যাVehicleক্লাসেরCarইনহেরিটেড ক্লাস থেকে অ্যাক্সেসযোগ্য। setBrandমেথডটি ব্যবহার করেbrandএর মান সেট করা হয়েছে, যাdisplayমেথডে অ্যাক্সেসযোগ্য।
সংক্ষিপ্ত তুলনা
| অ্যাক্সেস মডিফায়ার | ক্লাসের ভিতরে | ইনহেরিটেড ক্লাসে | ক্লাসের বাইরে |
|---|---|---|---|
private | ✔️ | ❌ | ❌ |
protected | ✔️ | ✔️ | ❌ |
public | ✔️ | ✔️ | ✔️ |
অ্যাক্সেস মডিফায়ার ব্যবহার করার উপকারিতা
- ডেটা সুরক্ষা: অ্যাক্সেস মডিফায়ার ব্যবহার করে ডেটা মেম্বার এবং মেথডের অ্যাক্সেসibilটিকে নিয়ন্ত্রণ করা যায়, যা ডেটা সুরক্ষিত রাখে।
- ক্লাসের সংজ্ঞা ও ব্যবহার পৃথক করা: ক্লাসের অভ্যন্তরীণ কার্যক্রম এবং বাইরের ব্যবহারের মধ্যে পার্থক্য তৈরি করতে সাহায্য করে।
- কোডের মডুলারিটি বৃদ্ধি: অ্যাক্সেস মডিফায়ার ব্যবহার করে কোডকে আরও মডুলার এবং সহজে ব্যবস্থাপনা করার উপযোগী করে তোলা যায়।
সারসংক্ষেপ
অ্যাক্সেস মডিফায়ার সি++ এ ডেটা এবং মেথডের অ্যাক্সেসibilটি নিয়ন্ত্রণের জন্য ব্যবহৃত হয়। private মেম্বার শুধুমাত্র ক্লাসের ভিতরে অ্যাক্সেসযোগ্য, protected মেম্বার ক্লাসের ভিতরে এবং ইনহেরিটেড ক্লাসে অ্যাক্সেসযোগ্য, এবং public মেম্বার ক্লাসের বাইরেও অ্যাক্সেসযোগ্য। অ্যাক্সেস মডিফায়ার প্রোগ্রামের ডেটা সুরক্ষা এবং সঠিক ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more