ကွန်ပျူတာများ, ပရိုဂရမ်းမင်း
Encapsulation တွေကိုသေချာ - ဒီကဘာလဲ? ပရိုဂရမ်းမင်းအတွက် encapsulation တွေကိုသေချာ
encapsulation တွေကိုသေချာ - ဒီသုံးခုအဓိကအင်္ဂါရပ်များထဲကတစ်ခုဖြစ်ပါသည် object-oriented programming (OOP) ။ အခြားနှစ်ဦးကို - polymorphic နှင့်အမွေဆက်ခံ။ အတူတူသူတို့ကဤသုံးပါးအခြေခံမူကို အသုံးပြု. ကွဲပြားခြားနားသောဘာသာစကားများအရေးအသားအစီအစဉ်များ features တွေတစ်အကွာအဝေးကိုဆင်းရေးသားထားပါတယ်သော PLO မူဘောင်တက်ပါစေ။ object-oriented ဘာသာစကား, အလှည့်၌, တင်းကြပ်စွာသူတို့ကိုလိုကျနာဖို့တာဝန်ရှိကြောင်းနေကြသည်။
OOP အခြေခံ
ယင်း၏ဖန်ဆင်းခြင်းတိုင်သုံးတိုင်ပေါ် object-oriented programming:
- တစ်ဦးအထူးသဖြင့် programming language ကိုအလားတူထုံးစံ၌တစ်ဦးချင်းစီကတခြားနဲ့ဆက်ဆံရေးရှိသည်သောအရာဝတ္ထုနှင့်အတူဆက်ဆံရေးမှာဘယ်လိုမေးခွန်းဖြေဆိုခြင်း polymorphic ။
- အဖြေပေးခြင်းအမွေဥစ္စာ, ဘယ်လိုပြန်သုံးနိုင်သောကုဒ်၏အသုံးပြုမှုများ၏ဆွဖြစ်ပါတယ်။
- အကောင်အထည်ဖော်မှုပုန်းအောင်း၏မေးခွန်းကိုဖြေသောအရာ encapsulation တွေကိုသေချာ, နေရာနှင့်အရှင်ဒေတာသမာဓိရှိကြာပါသည်။
ဝေါဟာရကထာ
encapsulation တွေကိုသေချာ (programming ကို) - အဆုံးအသုံးပြုသူများထံမှကုဒ်တဖဲ့ဖုံးကွယ်နိုင်ရန်အတွက်လက်လှမ်း modifiers သုံးစွဲဖို့ဖြစ်ပါတယ်။ ကအောက်ဖက်, အလှည့်၌, developer သို့မဟုတ်အမွေအနှစ်က်ဘ်ဆိုက်များကိုဆိုလိုသည်။
"encapsulation တွေကိုသေချာ" ၏အယူအဆ၏အနှစ်သာရ
အဓိပ္ပါယ် encapsulation တွေကိုသေချာအားဖြင့်အစီအစဉ်ကိုကုဒ်၏အားလုံးသို့မဟုတ်တစ်စိတ်တစ်ပိုင်းပုန်းအောင်းဓိပ်ပာကြောင်းသတ်မှတ်ပါတယ်။ "encapsulation တွေကိုသေချာ" ၏အယူအဆ၏အနှစ်သာရ access ကို modifiers manipulate ရန်ဖြစ်ပါသည်။ ဝှက်ထားကြသည် - ဤဆော့ဖ်ဝဲရေးသားသူဂုဏ်သတ္တိများ, နည်းလမ်းများနှင့်အတန်း client-class ကိုမှဖွင့်လှစ်ပါလိမ့်မည်သည့်ဆုံးဖြတ်, နှင့်အဘယ်သို့ဆိုင်နိုငျကွောငျးကိုဆိုလိုသည်။
access ကို modifiers
- အများပြည်သူ ( "ပြည်သူ့" - အများပြည်သူပွင့်လင်းလက်လှမ်း) - ရှယ်ယာလက်ရှိအတန်းများနှင့်တ္ထုနှစ်ဦးစလုံးနှင့်ပြင်ပကမ္ဘာရန်,
- ပုဂ္ဂလိက ( "prayvat" - ပုဂ္ဂလိက, ပုဂ္ဂလိက, ဝှက်ထားသောလက်လှမ်း) -, လုံးဝယခင်တဦးတည်း၏ဆန့်ကျင်ဘက်ဖြစ်သော၏အနှစ်သာရကိုလက်လှမ်းပိတ်လိုက်တယ်။ ကိုယ်ကသာလက်ရှိလူတန်းစားကနေ access ကိုပေးသည်;
- (-, protected ဝက်ဝှက်ထား access ကို "protekted") - protected လက်ရှိလူတန်းစားမှ Access ကိုနှင့်၎င်း၏အနကျအဓိပ်ပါယျ;
- default အ - မသတ်မှတ်ထားသော access ကိုအထူးပြုလယ်ပြင် / နည်းလမ်းကိုအထုပ်အားလုံးကိုလက်ရှိအတန်းများအတွက်မြင်နိုင်ပါသည်ဆိုလိုသည်။
C # သည်ဘာသာစကား ( "Si Sharp က") ခုနှစ်တွင်, (ကနောက်ဆုံး မှလွဲ. ) အထက်ပါအပြင်, modifiers နေဆဲရှိပါသည်:
- (- ပြည်တွင်းရေးဝင်ရောက်ခွင့် "ပြည်တွင်းရေး") - ပြည်တွင်းရေးလက်ရှိပရိသတ်၌အသုံးပြုနိုင်စွမ်း, ရှိသမျှအခြားဖြစ်ရပ်များမှမိုးလုံလေလုံ access ကို;
- ပြည်တွင်းရေး (- ပြည်တွင်းရေး Protected Access ကို "protekted ပြည်တွင်းရေး") - protected သူတို့ထဲကနှစ်ဦးစလုံး၏ဂုဏ်သတ္တိများကိုထင်ရှားစွာပြရသောဦးတည်းနှစ်ခု modifiers ၏ပြည်ထောင်စု။
encapsulation တွေကိုသေချာ၏အခန်းကဏ္ဍကို
encapsulation တွေကိုသေချာယန္တရားထဲတွင် embedded အချက်အလက်များ၏ကုဒ်နံပါတ်နှင့်အလွဲသုံးစားမှုအပေါ်ပြင်ပသြဇာလွှမ်းမိုးမှုရှင်းလင်းစေပါတယ်။ ဒီတစ်ခုထဲသို့ code နဲ့ data တွေကိုပေါင်းစပ်ပြီးအားဖြင့်ကုန်ပြီ။
object encapsulation တွေကိုသေချာ
code ကိုအတွက် embedded ဆော့ဖ်ဝဲမော်ကျူးများနှင့်အချက်အလက်များ၏အကောင်အထည်ဖော်မှုကိုပေါင်းစပ်ပြီး, programming ကို object တစ်ခုလို့ခေါ်ပါတယ်။ အဆိုပါ encapsulation တွေကိုသေချာနှင့်အတူ၎င်း၏ချိတ်ဆက်မှု၏အနှစ်သာရထိုကဲ့သို့သောနည်းလမ်းထိန်းသိမ်းရန်နှင့်ယန္တရား၏လုပ်ငန်းလည်ပတ်မှု၏သမာဓိသေချာစေရန်ခွင့်ပြုသောကွောငျ့ဖွစျသညျ။
encapsulation တွေကိုသေချာ၏အားသာချက်
encapsulation တွေကိုသေချာ - ထို encoding ကဖြစ်စဉ်ကိုရိုးရှင်းဖို့နည်းလမ်းဖြစ်သည်။ ကုဒ်၏မြောက်မြားစွာလိုင်းများ "ဟုအဆိုပါနောက်ကွယ်မှ" ဖြစ်ကြသည်ကို၎င်း, အဓိကလူတန်းစားအတွက်အလုပ်သာဓကကန့်ကွက်မယ်။
ဒေတာကာကွယ်စောင့်ရှောက်ရေး၏စိတ်ကူး
encapsulation တွေကိုသေချာ - ကလည်းဒေတာကာကွယ်စောင့်ရှောက်ရေး၏စိတ်ကူးသဘောပေါက်တဲ့ယန္တရားဖြစ်ပါတယ်။ Program ကိုယုတ္တိဗေဒ object-oriented programming ဒေတာအများစု (protected) ပုဂ္ဂလိက (ပုဂ္ဂလိကပုဂ္ဂလိက) သို့မဟုတ်ကာကွယ်စောင့်ရှောက် access ကိုအထူးပြုဝှက်ထားလိမ့်မည်ဘယ်အရာကို၏အခြေခံပေါ်တွင်တည်ဆောက်ထားသည်။ ပြင်ပကမ္ဘာ, ဖောက်သည်မတော်တဆသို့မဟုတ်တမင်သက်သက်ဆော့ဖ်ဝဲမော်ကျူးများအကောင်အထည်ဖော်မှုကိုပျက်စီးစေလိမ့်မည်မဟုတ်ပေ။ ဒီဟာအလွန်ကောင်းသောနိယာမဖြစ်ပါသည် - တကယ်တော့မပင်ရည်ရွယ်ချက်, encapsulation တွေကိုသေချာအပေါ်ဖို့ကအလွန်လွယ်ကူစေသည်ကြောင့်ဖြစ်သည်။
encapsulation တွေကိုသေချာယူနစ်
encapsulation တွေကိုသေချာ၏အခြေခံယူနစ်အဖြစ် class, နှင့်ဒေတာကိုဖော်ပြထားတယ်, ဤအချက်အလက်ပေါ်လည်ပတ်နိုင်သည့်ကုဒ်, ပါဝင်သည်။ ထို့အပြင်သူသည်အရာဝတ္ထုများ၏ဆောက်လုပ်ရေးများအတွက်အခြေခံဖြစ်ပါတယ်။ အဆုံးစွန်သော, အလှည့်အတွက်, တစ်ခုဥပမာအားဖြင့်အဖြစ်ပေးအပ်သည်။
- အဖွဲ့ဝင်များက - ဒီကုဒ်နှင့်အတန်းတွင်ထည့်သွင်းဒေတာဖြစ်၏
- လယ်ကွင်းသို့မဟုတ်ဥပမာအားဖြင့် variable တွေကို - အတန်းသတ်မှတ်ပါတယ်ကြောင်းဒါခေါ်ဒေတာ;
- အဖွဲ့ဝင်လုပ်ဆောင်ချက်များကို - သူတို့ကုဒ်သူ့ဟာသူဆံ့။ အဖွဲ့ဝင်လုပ်ဆောင်ချက်များကို - ဘုံအမည်ဖြစ်တယ်။ အထူးကိစ္စတွင် - နည်းလမ်းများ။
encapsulation တွေကိုသေချာတိကျသောသာဓက
encapsulation တွေကိုသေချာ (programming ကို) ဥပမာ:
* မှတ်ချက်:
ဖော်ပြချက် - နည်းလမ်း / ပစ္စည်းဥစ္စာပိုင်ဆိုင်မှု / variable ကို၏ဖော်ပြချက်, အမှန်တကယ်အစီအစဉ်တွင်ဖြစ်ပျက်အပေါ်မှတ်ချက်ပေး ie ။ ဒါဟာပွင့်လင်း / ပိတ်ပွဲ tags များအားဖွငျ့သရုပ်ပြနေသည်
System ကို အသုံးပြု. ;
namespace OOPLibrary.Auto
{
///
/// ဒီအတန်းအစားကားရဲ့အရေးယူဆောင်ရွက်မှုကိုဖော်ပြရန်ရည်ရွယ်
///
အများပြည်သူလူတန်းစားအော်တို
{
///
အိမ်ခြံမြေဆော့ဖ်ဝဲရေးအတွက်ပြင်ပနှောင့်ယှက်ပိုစဉ်းစားကတည်းကမည်သို့မည်ပုံနှစ်ပေါင်းများစွာကား, အထဲတွင်ရေးသားဖို့အလို့ငှာ created /// variable တွေကို
/// အထူးပြု (အထက်ဖော်ပြချက်။ ကြည့်ပါ) ဆိုလိုသညျပုဂ္ဂလိက access ကိုပိတ်ထား, ပုဂ္ဂလိကမှတ်သားသည်။
///
ပုဂ္ဂလိက int _age;
///
ယာဉ်ယခုအချိန်တွင်ရွေ့လျားနေသည်ရှိမရှိဖော်ပြထားတယ်သော - /// တစ်ဦးက boolean (yes သို့မဟုတ် no နှစ်ခုသာဖြစ်နိုင်သောတန်ဖိုးများ)
/// ဒါဟာအစသူမည်သူမဆိုအဆုံးအသုံးပြုသူမှဖွင့်လှစ်ဖြစ်သင့်သည်။ သို့ဖြစ်. variable ကိုပုဂ္ဂလိက access ကိုအထူးပြု "prayvat" တာဝန်ပေးခံရခြင်းဖြစ်သည်
///
ပုဂ္ဂလိက bool _isMoving;
///
/// ဒီ string ကို variable ကိုကားများ၏အရောင်အကြောင်းသတင်းအချက်အလက်မဆံ့သငျ့သညျ။ ဒါဟာပြင်ပလွှမ်းမိုးမှုများဖြင့်ပြောင်းလဲနိုင်ပါသည်
/// အရောင်အထူးပြုအတွက် "အများပြည်သူ" ပွင့်လင်း access ကိုရှေးခယျြထားလို့ပဲ။
///
အများပြည်သူ string ကိုအရောင်;
///
/// ဒီအထူးသဖြင့်အမှုတှငျကြှနျုပျတို့ကား၏အမည်လည်းပြောင်းလဲသွားနိုင်ပါတယ်ယူဆ
/// အများပြည်သူတစ်ဦးအထူးပြု (မသက်ဆိုင်လူတန်းစားသို့မဟုတ်ပရိသတ်အပေါင်းတို့အဘို့အပွင့်လင်းဝင်ရောက်ခွင့်,) တာဝန်ပေးအပ်။
///
အများပြည်သူ string ကိုအမည်,
///
/// အတန်းလုပ်ငန်းခွင်ဖွင့်လှစ်, နှင့်ထုတ်ဖော်ပြောဆို variable ကိုအပေါငျးတို့သဂုဏ်သတ္တိများနှင့်အနည်းငယ်အစောပိုင်းက ထား. မိမိတို့၏တန်ဖိုးများရ
///
အများပြည်သူအော်တို ()
{
_age = 5;
_isMoving = မှားယွင်းသော;
အရောင် = "ခရမ်းရောင်";
= "Skoda Octavia" အမည်;
}
///
/// အဆိုပါနည်းလမ်းကိုအလိုအလျောက်အသက်ပြန်တန်ဖိုးကိုသဘောပေါက်။ အဘယ်ကြောင့်ဒီအလိုအပ်သနည်း
/// ပုဂ္ဂလိက access ကိုအထူးပြုဖြစ်နိုင် client ကိုအပြောင်းအလဲများကိုလုပ်မထားဘူး။
///
/// ကားများ၏အသက်အရွယ် Returns ။
အများပြည်သူ string ကို GetAge ()
{
"ယခုအချိန်တွင်မှာရွေးချယ်ထားသောစက်" ပြန်လာ + _age + "နှစ်ပေါင်း။ ";
}
///
ကားကိုရွေ့လျားမပါရှိဘူးဆိုရင် ///, ဒီနည်းလမ်းကိုလှုပ်ရှားမှုရဲ့ start အကောင်အထည်ဖော်ဆောင်ရွက်နေသော။ စစ်ဆေးမှုများ variable ကို oboznalsya, ယာဉ်၏အခြေအနေ (ခရီးသွားလာသို့မဟုတ်မ), နှင့်, ရလဒ်ပေါ် မူတည်. သင့်လျော်သောအရေးယူဆောင်ရွက်မှု / မက်ဆေ့ခ်ျကိုပြသနေသည်။
///
အများပြည်သူပျက်ပြယ် Start ကို ()
{
(_isMoving) လျှင်
{
Console.WriteLine ( "အဆိုပါလှုပ်ရှားမှုကိုပြီးသားစတင်လိုက်ပါပြီ");
}
အခြားသူ
{
_isMoving = ဟုတ်မှန်သောသူ,
Console.WriteLine ( "အဆင်သင့်ဖြစ်ပြီလား, သတ်မှတ်မည် .. ချွတ် Go!");
}
}
///
အဆိုကိုအစပျိုးခဲ့သည်ဆိုပါက ///, ဒီနည်းလမ်းကိုသူ့ကိုရပ်လိုက်နိုင်သည်။ ထည့်သွင်းစဉ်းစားယခင်အမှု၌ကဲ့သို့တူညီသောအစီအစဉ်ကိုယုတ္တိဗေဒ။
///
အများပြည်သူပျက်ပြယ် Stop ()
{
(_isMoving) လျှင်
{
_isMoving = မှားယွင်းသော;
Console.WriteLine ( "Stop စက်");
}
အခြားသူ
{
Console.WriteLine ( "မှားယွင်းနေသည်ကားတစ်စီးနှင့်ဒါနေဆဲရပ်မရွှေ့ဘူး။ ");
}
}
///
တစ်ဦးမော်တော်ယာဉ်ရှိလျှင် ///, လက်ဝဲဘက်အလှည့်ဖေါ်
///
အများပြည်သူပျက်ပြယ် MoveLeft ()
{
(_isMoving) လျှင်
{
Console.WriteLine ( "လက်ဝဲလှည့်ပြု");
}
အခြားသူ
{
Console.WriteLine ( "မှားယွင်းနေသည်မော်တော်ယာဉ်စာရေးကိရိယာလည်ပတ်အင်္ဂါရပ်သည်လက်ရှိတွင်မရရှိနိုင်သည်။ ။ ");
}
}
///
လက်ျာဘက်အလှည့်နှင့်အတူ /// အလားတူနည်းလမ်း
///
အများပြည်သူပျက်ပြယ် MoveRight ()
{
(_isMoving) လျှင်
{
Console.WriteLine ( "ညာဘက်ကိုအောင်မြင်စွာအကောင်အထည်ဖော်ခဲ့သည် Turn");
}
အခြားသူ
{
Console.WriteLine ( "။ အဆိုပါကားကိုအမှားကြောင့်ယခုအချိန်တွင်လုပ်ဆောင်ချက်သည်အစက်အပြောက်လက်ျာဘက်ဖွင့်ကနေပြောင်းရွှေ့မထားပါဘူး, ကဖျော်ဖြေဖို့မဖြစ်နိုင်ဘူး .. ");
}
}
}
}
Similar articles
Trending Now