Encapsulation in C++
Encapsulation என்பது ஒரு class-ல் உள்ள variable, functions மற்றும் அவற்றை கையாளக்கூடிய செயல்பாடுகள் இவை இரண்டும் ஒன்றாக இணைந்து இருப்பதே Encapsulation என்று அழைக்கபடுகிறது. அதாவது ஒரு data-வை நேரடியாக access செய்ய முடியாமல் ஒரு function-க்குள் போட்டு அடைத்து வைப்பதே Encapsulation என்று அழைக்கபடுகிறது. அவற்றை member function உதவி கொண்டுதான் access செய்ய இயலும்.
ஒரு நடைமுறை உதாரணத்தின் மூலம் இதை இன்னும் எளிதாக புரிந்து கொள்ளலாம். ஒரு company-யில் sales department,accounts department,production department ஆகிய மூன்று துறைகள் உள்ளன. இதில் sales department-ல் உள்ள ஒருவர் அதே sales department-ல் உள்ள ஒரு குறிப்பிட்ட data வை நேரடியாக எடுத்து கொள்ள முடியும்.
Accounts department அனைத்து financial transaction-களையும் கையாளுகிறது அதேபோல் financial தொடர்பான அனைத்து data record-களையும் வைத்திருக்கிறது. இதேபோல் sales department அனைத்து sales தொடர்பான நடவடிக்கைகள் கையாளும் அனைத்து sales record-களை வைத்து இருக்கிறது.
இப்போது accounts department-ல் உள்ள ஒருவருக்கு, ஒரு குறிப்பிட்ட மாதத்தில் sales செய்யப்பட்ட அனைத்து data-ம் அவசியம் தேவைபடுகிறது எனில், sales பிரிவின் data-வை நேரடியாக அணுகுவதற்கு அவருக்கு அனுமதி இல்லை. அவர் முதலில் sales பிரிவில் உள்ள வேறு அதிகாரியை தொடர்பு கொண்டு அந்த data-வை பெறுவதற்கான அனுமதி பெற்ற பின்னரே அவரால் அந்த data-வை எடுக்க இயலும். இது வே Encapsulation ஆகும்.
Example
#include<iostream>
using namespace std;
class ExampleEncapsulation{
private:
// data hidden from outside world
int x;
public:
// function to set value of variable x
void set(int a){
x =a;
}
// function to return value of variable x
int get(){
return x;
}
};
// main function
int main(){
ExampleEncapsulation obj;
obj.set(5);
cout<<obj.get();
return 0;
}
Output:
5மேலே கொடுக்கப்பட்டுள்ள example-லில் x என்ற variable private-ஆக declare செய்யப்பட்டுள்ளதால் அவற்றை set(),get() ஆகிய method மூலமாகவே access செய்ய முடியும். x என்ற data-வை get() மற்றும் set() method களில் அடைக்கப்பட்டுள்ளது. இதுவே encapsulation.
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments