Үндсэн ялгаа – Өгөгдөл нуух ба капсулжуулалт
Объект хандалтат програмчлал (OOP) нь програмчлалын гол парадигм юм. Энэ нь объектыг ашиглан програм эсвэл програм хангамжийг хөгжүүлэхэд тусалдаг. Объектуудыг зураг төсөл ашиглан бүтээдэг. Үүнийг анги гэж нэрлэдэг. Анги нь тухайн объектод багтах ёстой шинж чанарууд болон зан үйлээс бүрдэнэ. Анги нь өгөгдлийн гишүүд болон аргуудыг агуулдаг. Өгөгдлийн гишүүд нь объектын шинж чанарыг тодорхойлдог бол аргууд нь объектын зан төлөвийг тодорхойлдог. Өгөгдөл нуух ба капсулжуулалт нь OOP гэсэн хоёр ойлголт юм. Өгөгдөл нуух нь тухайн ангийн гишүүдийг зөвшөөрөлгүй хандалтаас хамгаалах үйл явц бөгөөд Encapsulation нь өгөгдлийн гишүүд болон аргуудыг нэг нэгж болгон нэгтгэх үйл явц юм. Энэ бол өгөгдлийг нуух ба капсуллах хоёрын гол ялгаа юм. Өгөгдөл нуух нь системийн нарийн төвөгтэй байдлыг нуухын зэрэгцээ өгөгдлийг хамгаалахад чиглэгддэг. Encapsulation нь системийн нарийн төвөгтэй байдлыг нуухад голчлон анхаардаг. Encapsulation нь өгөгдлийг нуух арга юм.
Өгөгдөл нуух гэж юу вэ?
Анги нь өгөгдлийн гишүүд болон аргуудыг агуулдаг. Өгөгдөл нуух нь тухайн ангийн гишүүдийг хамгаалах үйл явц юм. Тиймээс энэ нь аюулгүй байдлыг сайжруулах механизм юм. Java зэрэг програмчлалын хэлэнд хандалтын хувиргагчийг ашигла. Эдгээр нь нийтийн, хувийн, хамгаалагдсан байдаг. Нийтийн өгөгдлийн гишүүд болон аргуудад бусад ангиллын объектууд хандах боломжтой. Хамгаалагдсан гишүүдэд нэг анги болон түүний дэд ангийн объектууд хандах боломжтой. Анги доторх объектууд хувийн гишүүдэд хандах боломжтой.
Программист эдгээр хандалтын тохируулагчийг програмын дагуу ашиглаж болно. Хэрэв гишүүдэд хандах хандалтыг хязгаарлах шаардлагагүй бол тэрээр нийтийн өөрчлөх хэрэгслийг ашиглаж болно. Өв залгамжлал нь OOP гэсэн ойлголт юм. Программыг эхнээс нь бичихийн оронд одоо байгаа ангиудыг ашиглаж болно. Одоо байгаа анги нь супер анги, харин шинэ анги нь дэд анги гэж нэрлэгддэг. Программист "хамгаалагдсан"-ыг ашиглан ангийн гишүүдийг зөвхөн тухайн анги болон холбогдох дэд ангиудад хандах боломжтой болгож чадна. Хэрэв ангиас гадуур өгөгдөлд хандахыг хязгаарлах шаардлагатай бол "хувийн" өөрчлөгчийг ашиглаж болно.
Өгөгдөл нуух нь бусад объектыг тодорхой ангийн гишүүдэд хандахаас сэргийлнэ. Тиймээс программист хувийн хандалтын хувиргагчийг ашиглах ёстой. Дараа нь өгөгдлийн гишүүдэд зөвхөн аргуудаар хандах боломжтой. Хэрэв Account нэртэй класс байгаа бөгөөд энэ нь өгөгдлийн гишүүнийг үлдэгдлээр агуулж байгаа бол тухайн өгөгдлийн гишүүн зөвхөн тухайн ангилалд хандах боломжгүй. Тиймээс хувийн гишүүн болох балансыг гаргаж чадна. Одоо зөвхөн анги дотроос л хандах боломжтой. Энэ нь мэдээллийн аюулгүй байдлыг сайжруулдаг.
Encapsulation гэж юу вэ?
OOP-д програм эсвэл программ хангамжийг объект ашиглан загварчилж болно. Объект бүр шинж чанар, зан үйлтэй байдаг. Шинж чанарууд нь өгөгдлийн гишүүд эсвэл шинж чанарууд, зан төлөвүүд нь аргууд юм. Объект бүрийг класс ашиглан үүсгэсэн. Энэ нь объект барих зураг төсөл эсвэл тайлбарыг өгдөг. Encapsulation нь OOP-ийн нэг гол тулгуур юм. Энэ нь өгөгдлийн гишүүд болон аргуудыг нэг нэгж болгон нэгтгэх үйл явц юм.
Өгөгдлийн гишүүд болон аргуудын энэ бүлэглэл нь програмыг удирдах боломжтой болгож, мөн нарийн төвөгтэй байдлыг багасгадаг. Rectangle анги нь өргөн, урт гэх мэт өгөгдлийн гишүүдтэй байж болно. Энэ нь getDetails, getArea, дэлгэц зэрэг аргуудтай байж болно. Бүх өгөгдлийн гишүүд болон аргуудыг Rectangle хэмээх нэг ангид нэгтгэдэг. Encapsulation-д private, protected, public хувиргагчийг ашиглаж болно. Хандалтын өөрчлөлтүүд нь өгөгдлийг хамгаалахад тусалдаг. Encapsulation нь өгөгдлийг далдлах арга гэж тодорхойлж болно.
Өгөгдөл нуух болон инкапсуллах хоёрын ижил төстэй зүйл юу вэ?
Өгөгдөл нуух ба инкапсуляци хоёулаа Объект хандалтат програмчлалтай (OOP) холбоотой ойлголтууд юм
Өгөгдөл нуух болон инкапсуллах хоёрын ялгаа нь юу вэ?
Өгөгдөл нуух ба инкапсуулга |
|
Өгөгдөл нуух нь төлөвлөөгүй эсвэл төлөвлөсөн өөрчлөлтөөс урьдчилан сэргийлэх замаар ангийн гишүүд болон төслийн объектын бүрэн бүтэн байдлыг хангах онцгой өгөгдөлд хандах үйл явц юм. | Encapsulation нь тухайн өгөгдөл дээр ажилладаг аргуудтай өгөгдлийг нэгтгэдэг OOP аргачлал юм. |
Гол анхаарал хандуулах | |
Өгөгдөл нуух нь нарийн төвөгтэй байдлыг нуухын зэрэгцээ өгөгдлийг хамгаалахад чиглэгддэг. | Системийн нарийн төвөгтэй байдлыг нуун дарагдуулахад чиглэсэн капсулжуулалт. |
Арга зүй | |
Өгөгдөл нуух нь өгөгдөл хамгаалах процесс юм. | Encapsulation нь өгөгдлийг нуух арга юм. |
Хандалтын хувиргагчид | |
Өгөгдөл нуух нь хувийн хандалт өөрчлөгчийг ашигладаг. | Encapsulation нь хувийн, хамгаалагдсан, нийтийн хандалтын хувиргагчийг ашигладаг. |
Тогтоон – Өгөгдөл нуух ба капсулжуулалт
Өгөгдөл нуух болон хаалт хийх нь OOP-ийн хоёр ойлголт юм. Өгөгдөл нуух нь ангийн гишүүдийг зөвшөөрөлгүй нэвтрэхээс хамгаалах үйл явц юм. Encapsulation гэдэг нь өгөгдлийн гишүүд болон аргуудыг нэг нэгж болгон багцлах үйл явц юм. Энэ бол өгөгдлийг нуух, хаах хоёрын ялгаа юм. Encapsulation нь өгөгдлийг нуух арга юм.