ຄອມພິວເຕີ, ດໍາເນີນໂຄງການ
Encapsulation - ນີ້ແມ່ນສິ່ງທີ່? encapsulation ໃນການຂຽນໂປຣແກຣມ
encapsulation - ນີ້ແມ່ນຫນຶ່ງໃນສາມລັກສະນະຕົ້ນຕໍຂອງ ການດໍາເນີນໂຄງຈຸດປະສົງ, ຮັດກຸມ (OOP). ອີກສອງ - polymorphism ແລະມໍລະດົກ. ພວກເຂົາເຈົ້າຮ່ວມກັນເຮັດຂຶ້ນໃນຂອບ PLO ທີ່ວາງລະດັບຂອງຄຸນນະສົມບັດຂອງລາຍລັກອັກສອນບັນດາໂຄງການໃນພາສາທີ່ແຕກຕ່າງກັນ, ການນໍາໃຊ້ຫລັກທໍາສາມ. ພາສາຈຸດປະສົງ, ຮັດກຸມ, ເຮັດ, ແມ່ນພັນທະທີ່ຈະປະຕິບັດຕາມຢ່າງເຄັ່ງຄັດໃຫ້ເຂົາເຈົ້າ.
Basics OOP
ຈຸດປະສົງ, ຮັດກຸມການຂຽນໂປຣແກຣມໃນສາມເສົາຄ້ໍາຂອງການສ້າງຂອງຕົນ:
- Polymorphism, ການຕອບຄໍາຖາມຂອງວິທີການດໍາເນີນໂຄງການພາສາໂດຍສະເພາະກ່ຽວຂ້ອງກັບວັດຖຸທີ່ມີຄວາມສໍາພັນກັບແຕ່ລະຄົນອື່ນໆ, ໃນລັກສະນະທີ່ຄ້າຍຄືກັນໄດ້.
- ມໍລະດົກ, ໃຫ້ຄໍາຕອບ, ວິທີການກະຕຸ້ນຂອງການນໍາໃຊ້ຂອງລະຫັດຊ້ໍາໄດ້.
- encapsulation, ຊຶ່ງເປັນຄໍາຕອບຂອງຄໍາຖາມຂອງ hiding ການປະຕິບັດໄດ້ໃຊ້ເວລາສະຖານທີ່, ແລະດັ່ງນັ້ນຈຶ່ງສົມບູນຂໍ້ມູນ.
ຄໍາສັບ
encapsulation (ດໍາເນີນໂຄງການ) - ແມ່ນເພື່ອນໍາໃຊ້ປັບປ່ຽນການເຂົ້າເຖິງໃນຄໍາສັ່ງເພື່ອປົກປິດຕ່ອນຂອງລະຫັດຈາກຜູ້ໃຊ້ທີ່ສຸດ. ຢູ່ລຸ່ມມັນ, ແລະເຮັດໃຫ້ການ, ຫມາຍຄວາມວ່າການພັດທະນາຫລືມໍລະດົກສະຖານທີ່.
ໂດຍເນື້ອແທ້ແລ້ວຂອງແນວຄວາມຄິດຂອງ "encapsulation" ໄດ້
ຄໍານິຍາມລະບຸວ່າໂດຍ encapsulation ຫມາຍຄວາມວ່າ hiding ທັງຫມົດຫຼືສ່ວນຫນຶ່ງຂອງລະຫັດໂຄງການ. ໂດຍເນື້ອແທ້ແລ້ວຂອງແນວຄວາມຄິດຂອງ "encapsulation" ແມ່ນການຈັດການປັບປ່ຽນການເຂົ້າເຖິງ. ນີ້ຫມາຍຄວາມວ່ານັກພັດທະນາສາມາດຕັດສິນໃຈທີ່ຄຸນສົມບັດ, ວິທີການ, ແລະຫ້ອງຮຽນຈະເປີດໃຫ້ໄດ້ລູກຄ້າທີ່ຫ້ອງຮຽນ, ແລະສິ່ງທີ່ - ຖືກເຊື່ອງໄວ້.
ປັບເຂົ້າ
- ສາທາລະນະ ( "ສາທາລະນະ" - ສາທາລະນະ, ການເຂົ້າເຖິງເປີດ) - ສ່ວນແບ່ງທັງຫ້ອງຮຽນໃນປະຈຸບັນແລະຈຸດປະສົງ, ແລະກັບໂລກພາຍນອກ;
- ເອກະຊົນ ( "prayvat" - ເອກະຊົນ, ເອກະຊົນ, ການເຂົ້າເຖິງເຊື່ອງໄວ້) - ປິດການເຂົ້າເຖິງ, ໂດຍເນື້ອແທ້ແລ້ວຂອງຊຶ່ງແມ່ນກົງກັນຂ້າມຫມົດຂອງຫນຶ່ງທີ່ຜ່ານມາໄດ້. ມັນສະຫນອງການເຂົ້າເຖິງພຽງແຕ່ຈາກລະດັບໃນປະຈຸບັນ;
- ປ້ອງກັນ ( "protekted" - ປ້ອງກັນ, ການເຂົ້າເຖິງເຄິ່ງຫນຶ່ງຂອງທີ່ເຊື່ອງໄວ້) - ການເຂົ້າເຖິງໄດ້ລະດັບໃນປະຈຸບັນແລະອະນຸພັນຂອງຕົນ;
- ໃນຕອນຕົ້ນ - ປັບປຸງໃຫ້ການເຂົ້າເຖິງບໍ່ໄດ້ລະບຸຫມາຍຄວາມວ່າພາກສະຫນາມ / ວິທີການສາມາດໄດ້ຮັບການເຫັນສໍາລັບທຸກຫ້ອງຮຽນໃນປະຈຸບັນຢູ່ໃນຊຸດຂອງ.
ໃນ C # ພາສາ ( "ຖ້າຫາກ Sharp"), ນອກເຫນືອໄປຈາກຂ້າງເທິງນີ້ (ຍົກເວັ້ນສຸດທ້າຍ), ມີຍັງ modifiers:
- ພາຍໃນ ( "ພາຍໃນ" - ການເຂົ້າເຖິງພາຍໃນ) - ການເຂົ້າເຖິງໃນສະພາແຫ່ງໃນປະຈຸບັນ, ການເຂົ້າເຖິງ indoor ກັບກໍລະນີອື່ນໆທັງຫມົດ;
- ພາຍໃນປ້ອງກັນ ( "ພາຍໃນ PROTEKTIVE" - ການເຂົ້າເຖິງການປົກປ້ອງພາຍໃນ) - ສະຫະພາບຂອງສອງປັບໃນຫນຶ່ງທີ່ຄຸນສົມບັດ manifest ຂອງທັງສອງຂອງເຂົາເຈົ້າ.
ພາລະບົດບາດຂອງ encapsulation
ກົນໄກ encapsulation ຈັດອິດທິພົນຈາກພາຍນອກກ່ຽວກັບການລະຫັດແລະ misuse ຂອງຂໍ້ມູນຝັງໃນມັນ. ນີ້ສາມາດເຮັດໄດ້ໂດຍການສົມທົບລະຫັດແລະຂໍ້ມູນເຂົ້າໄປໃນຫນຶ່ງ.
ວັດຖຸແລະ encapsulation
ສົມທົບການປະຕິບັດຂອງໂມດູນຊອຟແວແລະຂໍ້ມູນທີ່ຕິດຢູ່ໃນລະຫັດໃດຫນຶ່ງ, ດໍາເນີນໂຄງການແມ່ນເອີ້ນວ່າຈຸດປະສົງທີ່. ໂດຍເນື້ອແທ້ແລ້ວຂອງການເຊື່ອມຕໍ່ຂອງຕົນດ້ວຍ encapsulation ແມ່ນວ່າດັ່ງກ່າວວິທີອະນຸຍາດໃຫ້ເພື່ອຮັກສາແລະຮັບປະກັນຄວາມສົມບູນຂອງການດໍາເນີນງານຂອງກົນໄກໄດ້.
ປະໂຫຍດຂອງການ encapsulation
encapsulation - ວິທີການເພື່ອງ່າຍຂະບວນການເຂົ້າລະຫັດໄດ້. ສາຍຈໍານວນຫລາຍຂອງລະຫັດແມ່ນ "ຫລັງ scenes ການ", ແລະໃນການເຮັດວຽກລະດັບຕົ້ນຕໍແມ່ນເພື່ອວັດຖຸສິ່ງຂອງກໍລະນີ.
ແນວຄວາມຄິດຂອງການປົກປ້ອງຂໍ້ມູນ
encapsulation -. ມັນຍັງເປັນກົນໄກທີ່ຮູ້ຄວາມຄິດຂອງການປົກປ້ອງຂໍ້ມູນທີ່ເປັນ ມີເຫດຜົນໂຄງການດໍາເນີນໂຄງການຈຸດປະສົງ, ຮັດກຸມຖືກສ້າງຂຶ້ນບົນພື້ນຖານຂອງສິ່ງທີ່ຫຼາຍທີ່ສຸດຂອງຂໍ້ມູນທີ່ຈະເປັນຕົວການເຂົ້າເຖິງເຊື່ອງໄວ້ເອກະຊົນ (ເອກະຊົນ, ເອກະຊົນ) ຫຼືປ້ອງກັນ (ປ້ອງກັນ). ໂລກພາຍນອກ, ລູກຄ້າໂດຍບັງເອີນຫຼືເຈດຕະນາຈະເປັນການທໍາລາຍການປະຕິບັດຂອງໂມດູນຊອຟແວໄດ້. ເນື່ອງຈາກວ່າໃນຄວາມເປັນຈິງມັນເຮັດໃຫ້ມັນງ່າຍຫຼາຍທີ່ຈະບໍ່ແມ້ກະທັ້ງສຸດຈຸດປະສົງ, encapsulation - ນີ້ແມ່ນເປັນຫຼັກການທີ່ດີທີ່ສຸດ.
ຫນ່ວຍບໍລິການ encapsulation
ລະດັບ, ເປັນຫົວຫນ່ວຍພື້ນຖານຂອງ encapsulation ແລະອະທິບາຍຂໍ້ມູນປະກອບດ້ວຍລະຫັດຢືນຢັນ, ຊຶ່ງສາມາດປະຕິບັດງານກ່ຽວກັບຂໍ້ມູນເຫຼົ່ານີ້. ພຣະອົງຍັງໄດ້ເປັນພື້ນຖານສໍາລັບການກໍ່ສ້າງຂອງວັດຖຸໄດ້. ສຸດທ້າຍ, ແລະເຮັດໃຫ້ການ, ແມ່ນນໍາສະເຫນີເປັນຕົວຢ່າງເປັນ.
- ສະມາຊິກ - ນີ້ແມ່ນຂໍ້ກໍານົດແລະຂໍ້ມູນທີ່ລວມຢູ່ໃນລະດັບທີ່;
- ທົ່ງນາຫຼືຕົວແປຕົວຢ່າງ - ຂໍ້ມູນອັນທີ່ເອີ້ນວ່າທີ່ໄດ້ກໍານົດລະດັບການ;
- ປະຕິບັດຫນ້າສະມາຊິກ - ພວກເຂົາເຈົ້າປະກອບດ້ວຍລະຫັດຕົວຂອງມັນເອງ. ປະຕິບັດຫນ້າສະມາຊິກ - ຊື່ທົ່ວໄປ. A ກໍລະນີພິເສດ - ວິທີການ.
ຕົວຢ່າງສະເພາະ encapsulation
encapsulation (ດໍາເນີນໂຄງການ) ຍົກຕົວຢ່າງ:
* ຫມາຍເຫດ:
ຄໍາອະທິບາຍ - ຄໍາອະທິບາຍຂອງວິທີການ / ຄຸນສົມບັດ / ຕົວແປເຊັ່ນ: ຄວາມຄິດເຫັນໃນສິ່ງທີ່ເກີດຂຶ້ນແທ້ຈິງໃນໂຄງການ. ມັນສະແດງໃຫ້ເຫັນໂດຍວິທີການຂອງການເປີດ / tags ປິດ
ການນໍາໃຊ້ລະບົບ;
OOPLibrary.Auto namespace
{
///
/// ລະດັບນີ້ແມ່ນມີຈຸດປະສົງເພື່ອອະທິບາຍການປະຕິບັດລົດຂອງ
///
ອັດຕະໂນມັດລະດັບສາທາລະນະ
{
///
/// ຕົວແປສ້າງຕັ້ງຂື້ນໃນຄໍາສັ່ງທີ່ຈະຂຽນໃນມັນ, ເຮັດແນວໃດເວລາຫຼາຍປີລົດ, ນັບຕັ້ງແຕ່ການແຊກແຊງຈາກພາຍນອກໃນການພັດທະນາຄຸນສົມບັດການພິຈາລະນາ superfluous
/// ຕົວແມ່ນຫມາຍເອກະຊົນ, i.e. ປິດ, ການເຂົ້າເຖິງເອກະຊົນ (ເບິ່ງ. ຄໍາອະທິບາຍຂ້າງເທິງ).
///
_age int ເອກະຊົນ;
///
/// A boolean (ພຽງແຕ່ສອງຄ່າທີ່ເປັນໄປໄດ້ - ມີຫຼືບໍ່), ເຊິ່ງອະທິບາຍວ່າຍານພາຫະນະໄດ້ຖືກຍ້າຍໃນປັດຈຸບັນ
/// ມັນຄວນຈະເປີດໃຫ້ຜູ້ໃຊ້ທີ່ສຸດ, ໃຜກໍຕາມທີ່ພຣະອົງໄດ້. ດັ່ງນັ້ນການປ່ຽນແປງນີ້ແມ່ນການມອບຫມາຍຕົວເຂົ້າເອກະຊົນ "prayvat"
///
_isMoving bool ເອກະຊົນ;
///
/// ຕົວແປສະຕິງນີ້ຄວນປະກອບດ້ວຍຂໍ້ມູນກ່ຽວກັບສີຂອງລົດໄດ້. ມັນສາມາດໄດ້ຮັບການປ່ຽນແປງຈາກອິດທິພົນພາຍນອກ
/// ເພາະວ່າສໍາລັບຕົວສີໄດ້ເລືອກເຂົ້າເປີດ "ສາທາລະນະ".
///
ສາທາລະນະສີ string;
///
/// ໃນກໍລະນີນີ້ໂດຍສະເພາະ, ພວກເຮົາສົມມຸດວ່າຊື່ຂອງລົດ, ເຊັ່ນດຽວກັນ, ສາມາດໄດ້ຮັບການປ່ຽນແປງ
/// ມອບຫມາຍຕົວຂອງສາທາລະນະ (ການເຂົ້າເຖິງສໍາລັບການເປີດທັງຫມົດ, ໂດຍບໍ່ສົນເລື່ອງຂອງລະດັບຫລືການປະກອບ).
///
ຊື່ string ສາທາລະນະ;
///
/// ເປີດ constructor ລະດັບ, ແລະຄຸນສົມບັດທັງຫມົດຂອງຕົວປ່ຽນແປງສະແດງແລະກໍານົດເລັກນ້ອຍກ່ອນຫນ້ານັ້ນ, ໄດ້ຮັບຄ່າຂອງເຂົາເຈົ້າ
///
ອັດຕະໂນມັດສາທາລະນະ ()
{
_age = 5;
_isMoving = false
color = "ສີມ່ວງ";
ຊື່ = "Skoda Octavia";
}
///
/// ວິທີການຮູ້ເປັນຄ່າຕອບແທນຂອງອາຍຸອັດຕະໂນມັດໄດ້. ນີ້ຄືເຫດຜົນທີ່ຈໍາເປັນ?
/// ຫຍາຍການເຂົ້າເຖິງເອກະຊົນບໍ່ໄດ້ເຮັດໃຫ້ມັນເປັນໄປໄດ້ສໍາລັບການປ່ຽນແປງລູກຄ້າໄດ້.
///
/// ຜົນໄດ້ຮັບອາຍຸສູງສຸດຂອງລົດດັ່ງກ່າວ.
string ສາທາລະນະ GetAge ()
{
ກັບຄືນ "ໃນປັດຈຸບັນ, ເຄື່ອງຄັດເລືອກເຄື່ອງຫມາຍ" + _age + "ປີ.";
}
///
/// ຖ້າລົດບໍ່ໄດ້ຍ້າຍໄປມາ, ວິທີການນີ້ປະຕິບັດການເລີ່ມຕົ້ນຂອງການເຄື່ອນໄຫວດັ່ງກ່າວ. ການກວດສອບ oboznalsya ຕົວປ່ຽນແປງ, ສະພາບຂອງຍານພາຫະນະ (ເດີນທາງຫຼືບໍ່), ແລະ, ໂດຍອີງຕາມຜົນໄດ້ຮັບ, ການທີ່ເຫມາະສົມການປະຕິບັດ / ຂໍ້ຄວາມສະແດງ.
///
void ສາທາລະນະ Start ()
{
ຖ້າຫາກວ່າ (_isMoving)
{
ConsoleWriteLine ( "ການເຄື່ອນໄຫວໄດ້ຮັບການເລີ່ມຕົ້ນແລ້ວ");
}
ອື່ນ
{
_isMoving = true
ConsoleWriteLine ( "ພ້ອມທີ່ຈະ, ກໍານົດ .. ໄປໄປ!");
}
}
///
/// ຖ້າ motion ໄດ້ເລີ່ມ, ວິທີການນີ້ຢຸດເຂົາ. ຕາມເຫດຜົນໂຄງການເຊັ່ນດຽວກັນກັບໃນກໍລະນີທີ່ຜ່ານມາພິຈາລະນາ.
///
public void Stop ()
{
ຖ້າຫາກວ່າ (_isMoving)
{
_isMoving = false
ConsoleWriteLine ( "ເຄື່ອງຢຸດ");
}
ອື່ນ
{
ConsoleWriteLine ( ". ລົດ Error ແລະດັ່ງນັ້ນຢືນຢູ່, ບໍ່ຍ້າຍ");
}
}
///
/// ປະຕິບັດເຮັດໃຫ້ຊ້າຍ, ຖ້າຫາກວ່າບໍ່ມີຍານພາຫະນະເປັນ
///
public void MoveLeft ()
{
ຖ້າຫາກວ່າ (_isMoving)
{
ConsoleWriteLine ( "ລ້ຽວຊ້າຍກໍາລັງເຮັດ");
}
ອື່ນ
{
ConsoleWriteLine ( ". ຍານພາຫະນະ Error ແມ່ນຄຸນນະສົມບັດຫມຸນ stationary ຂະນະນີ້ບໍ່ສາມາດໃຊ້.");
}
}
///
/// A ວິທີການທີ່ຄ້າຍຄືກັນກັບເຮັດໃຫ້ສິດທິໃນການ
///
public void MoveRight ()
{
ຖ້າຫາກວ່າ (_isMoving)
{
ConsoleWriteLine ( "ລ້ຽວຂວາໄດ້ປະຕິບັດຢ່າງສໍາເລັດຜົນ");
}
ອື່ນ
{
ConsoleWriteLine ( ". ຜິດພາດລົດໄດ້ບໍ່ຫວັ່ນໄຫວຈາກຈຸດປ່ຽນເປັນສີສິດທິມັນໃນປັດຈຸບັນປະຕິບັດໄດ້, ມັນເປັນໄປບໍ່ໄດ້ທີ່ຈະປະຕິບັດ .. ");
}
}
}
}
Similar articles
Trending Now