Инкапсуляция менен абстракциянын ортосундагы айырма

Инкапсуляция менен абстракциянын ортосундагы айырма
Инкапсуляция менен абстракциянын ортосундагы айырма

Video: Инкапсуляция менен абстракциянын ортосундагы айырма

Video: Инкапсуляция менен абстракциянын ортосундагы айырма
Video: 14 #Кыргызча #Java: Модификатор доступ. Инкапсуляция. 2024, Ноябрь
Anonim

Инкапсуляция жана абстракция

Инкапсуляция жана абстракция эки башка, бирок OOP (Объектке багытталган программалоо) тилдеринде кездешүүчү түшүнүктөр. Инкапсуляция – бул маалыматтарды жана жүрүм-турумду бирдиктүү объект катары бириктирүү түшүнүгү. Экинчи жагынан, абстракция – бул объекттин өзүн кандай алып жүрөрүн көрсөтүү процесси, анын ишке ашырылышына караганда.

Инкапсуляция деген эмне?

Инкапсуляция – бул маалыматтарды жана аларда иштеген операцияларды бир объектке топтоо процесси. Бул, негизинен, маалыматтарга жетүү үчүн, белгилүү бир алдын ала аныкталган ыкмаларды колдонуу керек дегенди билдирет. Башка сөз менен айтканда, инкапсуляцияланган маалыматтар түздөн-түз жеткиликтүү эмес. Бул маалыматтын бүтүндүгүнүн сакталышын камсыздайт, анткени колдонуучу маалыматка түздөн-түз кире албайт жана каалагандай өзгөртө албайт. Колдонуучулар маалымат баалуулуктарын колдонуучуларга жалпыга жеткиликтүү болгон ыкмалар аркылуу гана алышат же орнотушат. Бул ыкмалар, адатта, тиешелүү форматтагы маалыматтарды гана талааларга киргизүүгө уруксат берүү үчүн маалыматтарды текшерүүнү камсыз кылат. Ошондуктан, Encapsulation пайдасы үч эсе көп. Инкапсуляция аркылуу программист класстын талааларын окуу үчүн гана жасай алат же жаза алат. Экинчиден, класс өзүнүн талааларында сакталган нерселерди толук көзөмөлдөй алат. Акыр-аягы, класстын колдонуучулары анын маалыматтары кандайча сакталып жатканынан тынчсыздануунун кереги жок. Java'да программист бардык инстанция өзгөрмөлөрүн купуя деп жарыялай алат жана жеке талааларга кирүү жана өзгөртүү үчүн алуу жана орнотуу ыкмаларын (жалпыга ачык) камсыздай алат.

Абстракция деген эмне?

Абстракция – бул презентациянын деталдарын ишке ашыруунун деталдарынан бөлүү процесси. Бул иштеп чыгуучу ишке ашыруунун татаалыраак деталдарынан кутулуу үчүн жасалат. Анын ордуна, программист презентацияга же объекттин жүрүм-турумуна көңүл бура алат. Жөнөкөй сөз менен айтканда, абстракция белгилүү бир объектти кантип ишке ашырууга эмес, аны кантип колдонууга болот. Абстракция негизинен ишке ашыруунун деталдарын жашырат, ошондуктан ишке ашыруунун методологиясы убакыттын өтүшү менен өзгөрсө дагы, программист анын программасына кандай таасир этет деп тынчсызданбашы керек. Системаны бир нече катмарда же деңгээлде абстракциялоого болот. Мисалы, төмөнкү деңгээлдеги абстракция катмарлары аппараттык камсыздоонун деталдарын ачып берет, ал эми жогорку деңгээлдеги абстракция субъекттин бизнес логикасын гана ачып берет. Абстракция термини объектке да, процесске да карата колдонулушу мүмкүн жана бул кандайдыр бир башаламандыкка алып келет. Процесс катары абстракция бир нерсенин же элементтер тобунун маанилүү эмес деталдарын этибарга албай, маанилүү деталдарды чыгарууну билдирет, ал эми субъект катары абстракция маанилүү деталдарды гана камтыган объекттин моделин же көрүнүшүн билдирет. Java тилинде программист классты абстракттуу объект катары жарыялоо үчүн абстракт ачкыч сөзүн колдоно алат, ал чыныгы дүйнө объектинин маанилүү аныктоочу мүнөздөмөлөрүн билдирет.

Инкапсуляция менен абстракциянын ортосунда кандай айырма бар?

Инкапсуляция жана абстракция объектиге багытталган программалоо тилдеринде кездешүүчү абдан окшош түшүнүктөр болсо да, алардын негизги айырмачылыктары бар. Абстракция – бул бизге эмне көрүнөө жана эмнени жашыруу керектигин аныктоого жардам берген техника. Инкапсуляция - бул көрүнөө керек болгон нерсени көрүнөө жана жашыруу керек болгон нерсени жашыруу үчүн маалыматты таңгактоо ыкмалары. Башка сөз менен айтканда, Инкапсуляцияны абстракциядан бир кадам ары аныктоого болот. Абстракция реалдуу дүйнө объектисин анын негизги аныктоочу мүнөздөмөлөрүнө чейин азайтса, инкапсуляция бул идеяны ал объекттин бул функционалдуулугун моделдөө жана байланыштыруу аркылуу кеңейтет.

Сунушталууда: