ຄອມພິວເຕີດໍາເນີນໂຄງການ

Encapsulation - ນີ້ແມ່ນສິ່ງທີ່? encapsulation ໃນການຂຽນໂປຣແກຣມ

encapsulation - ນີ້ແມ່ນຫນຶ່ງໃນສາມລັກສະນະຕົ້ນຕໍຂອງ ການດໍາເນີນໂຄງຈຸດປະສົງ, ຮັດກຸມ (OOP). ອີກສອງ - polymorphism ແລະມໍລະດົກ. ພວກເຂົາເຈົ້າຮ່ວມກັນເຮັດຂຶ້ນໃນຂອບ PLO ທີ່ວາງລະດັບຂອງຄຸນນະສົມບັດຂອງລາຍລັກອັກສອນບັນດາໂຄງການໃນພາສາທີ່ແຕກຕ່າງກັນ, ການນໍາໃຊ້ຫລັກທໍາສາມ. ພາສາຈຸດປະສົງ, ຮັດກຸມ, ເຮັດ, ແມ່ນພັນທະທີ່ຈະປະຕິບັດຕາມຢ່າງເຄັ່ງຄັດໃຫ້ເຂົາເຈົ້າ.

Basics OOP

ຈຸດປະສົງ, ຮັດກຸມການຂຽນໂປຣແກຣມໃນສາມເສົາຄ້ໍາຂອງການສ້າງຂອງຕົນ:

  • Polymorphism, ການຕອບຄໍາຖາມຂອງວິທີການດໍາເນີນໂຄງການພາສາໂດຍສະເພາະກ່ຽວຂ້ອງກັບວັດຖຸທີ່ມີຄວາມສໍາພັນກັບແຕ່ລະຄົນອື່ນໆ, ໃນລັກສະນະທີ່ຄ້າຍຄືກັນໄດ້.
  • ມໍລະດົກ, ໃຫ້ຄໍາຕອບ, ວິທີການກະຕຸ້ນຂອງການນໍາໃຊ້ຂອງລະຫັດຊ້ໍາໄດ້.
  • encapsulation, ຊຶ່ງເປັນຄໍາຕອບຂອງຄໍາຖາມຂອງ hiding ການປະຕິບັດໄດ້ໃຊ້ເວລາສະຖານທີ່, ແລະດັ່ງນັ້ນຈຶ່ງສົມບູນຂໍ້ມູນ.

ຄໍາສັບ

encapsulation (ດໍາເນີນໂຄງການ) - ແມ່ນເພື່ອນໍາໃຊ້ປັບປ່ຽນການເຂົ້າເຖິງໃນຄໍາສັ່ງເພື່ອປົກປິດຕ່ອນຂອງລະຫັດຈາກຜູ້ໃຊ້ທີ່ສຸດ. ຢູ່ລຸ່ມມັນ, ແລະເຮັດໃຫ້ການ, ຫມາຍຄວາມວ່າການພັດທະນາຫລືມໍລະດົກສະຖານທີ່.

ໂດຍເນື້ອແທ້ແລ້ວຂອງແນວຄວາມຄິດຂອງ "encapsulation" ໄດ້

ຄໍານິຍາມລະບຸວ່າໂດຍ encapsulation ຫມາຍຄວາມວ່າ hiding ທັງຫມົດຫຼືສ່ວນຫນຶ່ງຂອງລະຫັດໂຄງການ. ໂດຍເນື້ອແທ້ແລ້ວຂອງແນວຄວາມຄິດຂອງ "encapsulation" ແມ່ນການຈັດການປັບປ່ຽນການເຂົ້າເຖິງ. ນີ້ຫມາຍຄວາມວ່ານັກພັດທະນາສາມາດຕັດສິນໃຈທີ່ຄຸນສົມບັດ, ວິທີການ, ແລະຫ້ອງຮຽນຈະເປີດໃຫ້ໄດ້ລູກຄ້າທີ່ຫ້ອງຮຽນ, ແລະສິ່ງທີ່ - ຖືກເຊື່ອງໄວ້.

ປັບເຂົ້າ

ມີການປັບປ່ຽນການເຂົ້າເຖິງ, ທີ່, ໃນບັນດາສິ່ງອື່ນໆ, ແມ່ນສາມາດ manipulyarivat encapsulation (ດໍາເນີນໂຄງການ Java) ແມ່ນ:

  • ສາທາລະນະ ( "ສາທາລະນະ" - ສາທາລະນະ, ການເຂົ້າເຖິງເປີດ) - ສ່ວນແບ່ງທັງຫ້ອງຮຽນໃນປະຈຸບັນແລະຈຸດປະສົງ, ແລະກັບໂລກພາຍນອກ;
  • ເອກະຊົນ ( "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

 

 

 

 

Newest

Copyright © 2018 lo.birmiss.com. Theme powered by WordPress.