এনক্যাপসুলেশন ডেটা এবং ডেটা ম্যানিপুলেট করার মেথডগুলোকে একক কম্পোনেন্টে একসাথে নিয়ে আসে এবং সেগুলোকে বাইরের হস্তক্ষেপ থেকে রক্ষা করে। সারমর্মে, এনক্যাপসুলেশন ডেটা এবং ডেটা ব্যবহারকারী ফাংশনগুলোর বান্ডেলিং-কে জড়িত। ডেটা এনক্যাপসুলেশন খুব গুরুত্বপূর্ণ কনসেপ্ট ডেটা হাইডিং-এ লিড করে।
C++-এ এনক্যাপসুলেশন ক্লাস ব্যবহার করে বাস্তবায়ন করা হয় যা ইউজার-ডিফাইনড ডেটা টাইপ। এই ক্লাসগুলো ডেটা টাইপ এবং মেথডগুলো একসাথে বান্ড করে রাখে।
ক্লাস ব্যবহার করে C++-তে এনক্যাপসুলেশন উপস্থাপন করে এমন একটি প্রোগ্রাম নিচে দেওয়া হলো:
উদাহরণ
#include <iostream>
using namespace std;
class EncapsulationDemo {
private:
int length, breadth, height;
public:
void setValues(int l, int b, int h) {
length = l;
breadth = b;
height = h;
}
void calcVolume() {
cout << "Length = " << length << endl;
cout << "Breadth = " << breadth << endl;
cout << "Height = " << height << endl;
cout << "Volume = " << length * breadth * height << endl;
}
};
int main() {
EncapsulationDemo obj;
obj.setValues(5, 3, 2);
obj.calcVolume();
return 0;
}
আউটপুট
Length = 5 Breadth = 3 Height = 2 Volume = 30
উপরোক্ত প্রোগ্রামে, ভেরিয়েবল এবং মেথডগুলো একটি একক ইউনিটে WRAP করা হয়েছে অর্থাৎ EncapsulationDemo ক্লাস। তাই এই প্রোগ্রামটি এনক্যাপসুলেশন কনসেপ্ট প্রদর্শন করে।
EncapsulationDemo ক্লাসে length, breadth এবং height প্রাইভেট ভেরিয়েবল। এছাড়া পাবলিক ফাংশন রয়েছে যা এই ভেরিয়েবলগুলো ইনিশিয়ালাইজ করে এবং লেংথ, ব্রেডথ ও হাইট গুণ করে ভলিউম ক্যালকুলেট করে। এর কোড স্নিপেট নিচে দেওয়া হলো:
class EncapsulationDemo {
private:
int length, breadth, height;
public:
void setValues(int l, int b, int h) {
length = l;
breadth = b;
height = h;
}
void calcVolume() {
cout << "Length = " << length << endl;
cout << "Breadth = " << breadth << endl;
cout << "Height = " << height << endl;
cout << "Volume = " << length * breadth * height << endl;
}
};
main() ফাংশনে, প্রথমে EncapsulationDemo টাইপের একটি অবজেক্ট সংজ্ঞায়িত করা হয়েছে। তারপর setValues() ফাংশনটি ৫, ৩ এবং ২ মান দিয়ে কল করা হয়েছে। অবশেষে, এই মানগুলো এবং ভলিউম calcVolume() ফাংশন ব্যবহার করে প্রদর্শন করা হয়েছে। এর কোড স্নিপেট নিচে দেওয়া হলো:
EncapsulationDemo obj; obj.setValues(5, 3, 2); obj.calcVolume();