Enkapsulyatsiya va abstraktsiya o'rtasidagi farq

Enkapsulyatsiya va abstraktsiya o'rtasidagi farq
Enkapsulyatsiya va abstraktsiya o'rtasidagi farq

Video: Enkapsulyatsiya va abstraktsiya o'rtasidagi farq

Video: Enkapsulyatsiya va abstraktsiya o'rtasidagi farq
Video: #31 Python Darslari | Object Oriented Dasturash. Inkapsulyatsiya. Klassga xos xususiyat va metodlar. 2024, Noyabr
Anonim

Enkapsulyatsiya va abstraktsiya

Enkapsulyatsiya va Abstraksiya ikki xil, ammo OOP (Ob'ektga yo'n altirilgan dasturlash) tillarida o'zaro bog'liq tushunchalardir. Inkapsulyatsiya - bu ma'lumotlar va xatti-harakatlarni yagona ob'ekt sifatida birlashtirish tushunchasi. Boshqa tomondan, abstraktsiya - bu qanday amalga oshirilayotganidan farqli o'laroq, ob'ekt o'zini qanday tutishi\ ko'rinishini taqdim etish jarayonidir.

Enkapsulyatsiya nima?

Enkapsulyatsiya - bu ma'lumotlar va ular ustida ishlaydigan operatsiyalarni bitta ob'ektga o'rash jarayoni. Bu, asosan, ma'lumotlarga kirish uchun oldindan belgilangan ba'zi usullardan foydalanish kerakligini anglatadi. Boshqacha qilib aytganda, inkapsullangan ma'lumotlarga to'g'ridan-to'g'ri kirish mumkin emas. Bu ma'lumotlarning yaxlitligi saqlanishiga ishonch hosil qiladi, chunki foydalanuvchi o'zi xohlagancha ma'lumotlarga to'g'ridan-to'g'ri kira olmaydi va o'zgartira olmaydi. Foydalanuvchilar ma'lumotlar qiymatlarini faqat foydalanuvchilar uchun ochiq bo'lgan usullar orqali oladi yoki o'rnatadi. Ushbu usullar odatda ma'lumotlarni tekshirishni ta'minlaydi, shunda maydonlarga faqat tegishli formatdagi ma'lumotlarni kiritishga ruxsat beriladi. Shuning uchun, Encapsulation foydasi uch barobardir. Encapsulation orqali dasturchi sinf maydonlarini faqat o'qish yoki faqat yozish uchun yaratishi mumkin. Ikkinchidan, sinf o'z maydonlarida saqlanadigan narsalarni to'liq nazorat qilishi mumkin. Va nihoyat, sinf foydalanuvchilari uning ma'lumotlari qanday saqlanishi haqida tashvishlanishlari shart emas. Java'da dasturchi barcha misol o'zgaruvchilarini shaxsiy deb e'lon qilishi va shaxsiy maydonlarga kirish va ularni o'zgartirish uchun olish va sozlash usullarini (ommaviy) taqdim etishi mumkin.

Abstraksiya nima?

Abstraktsiya - bu taqdimot tafsilotlarini amalga oshirish tafsilotlaridan ajratish jarayoni. Bu ishlab chiquvchini amalga oshirishning yanada murakkab tafsilotlaridan xalos bo'lishi uchun amalga oshiriladi. Buning o'rniga, dasturchi taqdimotga yoki ob'ektning xatti-harakatlariga e'tibor qaratishi mumkin. Oddiy so'zlar bilan aytganda, mavhumlik ma'lum bir ob'ektni qanday amalga oshirishdan ko'ra qanday foydalanish mumkinligiga qaratilgan. Abstraktsiya asosan amalga oshirish tafsilotlarini yashiradi, shuning uchun amalga oshirish metodologiyasi vaqt o'tishi bilan o'zgargan taqdirda ham, dasturchi bu uning dasturiga qanday ta'sir qilishi haqida tashvishlanmasligi kerak. Tizim bir necha qatlamlarda yoki darajalarda mavhum bo'lishi mumkin. Masalan, past darajadagi abstraktsiya qatlamlari apparat tafsilotlarini ochib beradi, yuqori darajadagi abstraktsiya esa faqat ob'ektning biznes mantiqini ochib beradi. Abstraktsiya atamasi ob'ektga ham, jarayonga ham murojaat qilish uchun ishlatilishi mumkin va bu ba'zi chalkashliklarga olib keladi. Jarayon sifatida abstraksiya ob'ekt yoki elementlar guruhining ahamiyatsiz tafsilotlarini e'tiborsiz qoldirib, muhim tafsilotlarni ajratib olishni anglatadi, ob'ekt sifatida esa abstraktsiya faqat muhim tafsilotlarga ega bo'lgan ob'ektning modeli yoki ko'rinishini anglatadi. Java-da dasturchi sinfni mavhum ob'ekt sifatida e'lon qilish uchun abstrakt kalit so'zidan foydalanishi mumkin, bu haqiqiy dunyo ob'ektining muhim belgilovchi xususiyatlarini ifodalaydi.

Enkapsulyatsiya va abstraksiya o'rtasidagi farq nima?

Inkapsulyatsiya va Abstraksiya ob'yektga yo'n altirilgan dasturlash tillarida juda bog'liq tushunchalar bo'lsa-da, ular asosiy farqlarga ega. Abstraksiya - bu bizga nima ko'rinadigan va nima yashirin bo'lishi kerakligini aniqlashga yordam beradigan texnikadir. Inkapsulyatsiya - bu ko'rinadigan narsalarni ko'rinadigan va yashirilishi kerak bo'lgan narsalarni yashiradigan ma'lumotlarni qadoqlash usullari. Boshqacha qilib aytadigan bo'lsak, Encapsulation mavhumlikdan keyingi bir qadam sifatida aniqlanishi mumkin. Abstraktsiya real dunyo ob'ektini uning asosiy belgilovchi xususiyatlariga qisqartirsa-da, inkapsulyatsiya ushbu ob'ektning ushbu funksionalligini modellashtirish va bog'lash orqali bu g'oyani kengaytiradi.

Tavsiya: