C++ Encapsulation
Encapsulation
Encapsulation ၏အဓိပ္ပာယ်မှာ သုံးစွဲသူများထံမှ "sensitive" ဒေတာကို ဝှက်ထားကြောင်း သေချာစေရန်ဖြစ်သည်။ ၎င်းကိုအောင်မြင်ရန်၊ သင်သည် private
(အတန်းပြင်ပမှဝင်ရောက်၍မရပါ) အဖြစ် class variables/attribute များကိုကြေငြာရပါမည်။ အကယ်၍ သင်သည် အခြားသူများ၏ သီးသန့်အဖွဲ့ဝင်တစ်ဦး၏တန်ဖိုးကို ဖတ်ရှုရန် သို့မဟုတ် ပြင်ဆင်လိုပါက၊ အများသူငှာ ရယူရန် နှင့်
သတ်မှတ် နည်းလမ်းများကို ပေးနိုင်ပါသည်။
သီးသန့်အဖွဲ့ဝင်များကို ဝင်ရောက်ကြည့်ရှုပါ။
သီးသန့် ရည်ညွှန်းချက်ကို ရယူရန်၊ အများသူငှာ "get" နှင့် "set" နည်းလမ်းများကို အသုံးပြုပါ-
ဥပမာ
#include <iostream>
using namespace std;
class Employee {
private:
// Private attribute
int salary;
public:
// Setter
void setSalary(int s) {
salary = s;
}
// Getter
int getSalary() {
return salary;
}
};
int
main() {
Employee myObj;
myObj.setSalary(50000);
cout << myObj.getSalary();
return 0;
}
နမူနာရှင်းပြထားပါတယ်။
salary
ရည်ညွှန်းချက်မှာ ဝင်ရောက် private
ခွင့်ကို ကန့်သတ်ထားသည်။
အများသူငှာ setSalary()
နည်းလမ်းသည် parameter ( ) ကိုယူ၍ attribute (salary = s) s
သို့ သတ်မှတ်ပေးသည်
။salary
အများသူငှာ getSalary()
နည်းလမ်းသည် သီးသန့် salary
attribute ၏တန်ဖိုးကို ပြန်ပေးသည်။
အတွင်းတွင် ၊ ကျွန်ုပ်တို့သည် class main()
၏ object တစ်ခုကို ဖန်တီးသည် ။ Employee
ယခု ကျွန်ုပ်တို့သည်
setSalary()
ကိုယ်ပိုင် attribute ၏တန်ဖိုးကို သတ်မှတ်ရန် နည်းလမ်းကို အသုံးပြုနိုင်ပါသည် 50000
။ ထို့နောက်
getSalary()
တန်ဖိုးကို ပြန်ပေးရန်အတွက် အရာဝတ္တုပေါ်ရှိ နည်းလမ်းကို ကျွန်ုပ်တို့ခေါ်ဆိုပါသည်။
ဘာကြောင့် Encapsulation
- သင်၏အတန်းရည်ညွှန်းချက်များကို သီးသန့်အဖြစ် (တတ်နိုင်သမျှ မကြာခဏ) ကြေငြာခြင်းသည် ကောင်းသောအလေ့အကျင့်ဟု ယူဆပါသည်။ Encapsulation သည် သင့်ဒေတာကို ပိုမိုကောင်းမွန်စွာ ထိန်းချုပ်နိုင်စေသည်၊ အကြောင်းမှာ သင် (သို့မဟုတ် အခြားသူများ) သည် အခြားအစိတ်အပိုင်းများကို မထိခိုက်စေဘဲ ကုဒ်၏အစိတ်အပိုင်းတစ်ခုကို ပြောင်းလဲနိုင်သောကြောင့်ဖြစ်သည်။
- ဒေတာလုံခြုံရေးတိုးမြှင့်