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.

Comments