inkapsilyatsiya

PPTX 28 pages 505.7 KB Free download

Page preview (5 pages)

Scroll down 👇
1 / 28
sinf a’zolari. inkapsilyatsiya sinf a’zolari. inkapsilyatsiya hafta: 2 ma’ruza: 2 fan: dasturlash 2 maqsad quyidagi tushunchalar bilan tanishish: sinf aniqlanishi va sinf implementatsiyasini ajratish #ifndef direktivasi orqali bir nechta bosh(header) fayllarni qo’shishning oldini olish sinflarda inline funksiyalar ma’lumot maydonlarini inkapsulyatsiyalash uchun get va set funksiyalari yordamida ma’lumot maydonlarini private holatda e’lon qilish ma’lumot maydoni sohasini tushunish dasturiy ta’minotni ishlab chiqishda sinf abstraksiyasini qo’llash 1. sinf aniqlanishidan(definition) sinf implementatsiyasini(implementation) ajratish sinf aniqlanishidan sinf implementatsiyasini bir biridan ajratish sinfga qo’shimchalar qo’shishni osonlashtiradi. c++ da sinf implementatsiyasini sinf aniqlanishidan ajratish imkoniyati mavjud. sinf aniqlanishi sinf shartnomasi bo’lsa, implementatsiyasi esa shu shartnoma shartlarini bajarishdir. sinf aniqlanishida barcha ma’lumot maydonlari, konstruktor prototiplari va funksiyalar prototiplari ro’yxati bo’ladi. sinf implementatsiyasida esa konstruktorlar va funksiyalar implementatsiya qilinadi. sinf aniqlanishi va sinf implementatsiyasi ikkita alohida faylda yozilsishi mumkin. ikki fayl ham bir xil nomda bo’lishi kerak, lekin kengaytmalari farqlanishi lozim. sinf aniqlanishini o’zida saqlovchi fayl .h(h header fayl …
2 / 28
liflik huquqini himoya qilishda muhim rol o’ynaydi. listing 9.3 circle.h listing 9.4 circle.cpp listing 9.5 testcirclewithheader.cpp 2. ko’p qo’shishning oldini olish qo’shish himoyasi header fayllarni bir necha bor qo’shishning oldini oladi. bitta header faylni dasturga bir necha bor qo’shish umumiy xatolik hisoblanadi. tasavvur qiling, head.h ga circle.h qo’shilsin va testhead.cpp ikkisini ham, yani head.h ham circle.h faylini ham qo’shib olsin. 2. ko’p qo’shishning oldini olish 2. ko’p qo’shishning oldini olish agar testhead.cpp kompilyatsiya qilinsa, u holda xatolik yuzaga keladi, chunki bu yerda circle ko’p marta aniqlanayapti. buning nimasi not’g’ri? circle.h 1-qatorga qo’shildi. bu paytda circle header fayli head.h ga ham qo’shildi. bu ko’p marta qo’shish xatoligiga olib keladi. #ifndef va #define direktivalari header fayllarni ko’p marta qo’shish xatoligining oldini oladi. bu jarayon qo’shish himoyasi deb ataladi. dastur ishlashi uchun header faylga 3 qator kod yozib qo’yiladi. bu jarayon quyidagi listingda ajratib ko’rsatilgan. listing 9.8 circlewithinclusionguard.h 2. ko’p qo’shishning oldini olish …
3 / 28
i oshirish uchun qisqa funksiyalarni inline funksiyalar sifatida aniqlashingiz mumkin. sinf aniqlanishida funksiya implementatsiya qilinsa, u avtomatik ravishda inline funksiyaga aylanadi. bu jarayon inline aniqlanish deb ham ataladi. misol uchun, quyidagi a sinf aniqlanishida konstruktor va f1 funksiya inline funksiyalar, ammo f2 bunday emas. 3. sinflarda inline funksiyalar 3. sinflarda inline funksiyalar sinflar uchun inline funksiyalarni yaratishning boshqa yo’li ham mavjud. inline funksiyalarni sinf implementatsiyasida ham aniqlash mumkin. misol uchun, f2 funksiyani inline kalit so’zi yordamida quyidagicha inline funksiyaga aylantiramiz: inline double a::f2() { //son qaytarish } 4. ma’lumot maydoni inkapsulyatsiyasi ma’lumot maydonini yopish (private) ma’lumotni himoyalaydi va sinfga qo’shimchalar kiritishni osonlashtiradi. inkapsulyatsiyalashning muhimligiga ikki sabab: ma’lumotlarni o’zgarib qolishidan himoya qilish; sinfga qo’shimchalar qo’shish va xatoliklarni bartaraf qilishni osonlashtirish. 4. ma’lumot maydoni inkapsulyatsiyasi ma’lumot maydonini yopib qo’yish uchun private kalit so’zidan foydalaniladi. bu jarayon ma’lumot maydoni inkapsulyatsiyasi deyiladi. circle sinfida ma’lumot maydonini yopish uchun quyidagicha o’zgarish kiritiladi: 4. ma’lumot maydoni …
4 / 28
aniqlanish lozim: bool ismaydonnomi() set funksiya esa quyidagicha aniqlanadi: void setmaydonnomi(malumotturi maydonqiymati) listing 9.9 circlewithprivatedatafields.h listing 9.10 circlewithprivatedatafields.cpp listing 9.11 testcirclewithprivatedatafields.cpp o’zgaruvchilar joylashuvi a, b va c holatlar bir xil. sinf abstraksiyasi va inkapsulyatsiya sinf abstraksiyasi bu – sinf foydalanilishidan sinf implementatsiyasini ajratishdir. implementatsiya jarayonlari foydalanuvchidan inkapsulyatsiyalanadi va yashiriladi. bu jarayon sinf inkapsulyatsiyasi deyiladi. olingan xulosalar sinf aniqlanishi va uning implementatsiyasini alohida fayllarga yozish mumkin. #ifndef direktivasi qo’shish himoyasi deyiladi. funksiya sinf aniqlanishida implementatsiya qilib ketilsa, u inline funksiya hisoblanadi. public funksiya yoki ma’lumot kodning ixtiyoriy qismida ko’rinarli bo’ladi. private funksiya yoki ma’lumot faqat sinfning ichida mavjud bo’ladi. get yoki set funksiyalari orqali mijozlarga ma’lumotni ko’rishlariga imkon yaratib berishingiz mumkin. olingan xulosalar 7. o’z navbatida, get funksiya getter( yoki accessor) va set funksiya setter( yoki mutator) deb ham yuritiladi. 8. get funksiyaning ko’rinishi qaytuvchitur getmaydonnomi() 9. agar qaytuvchitur bool turida bo’lsa, u holda get funksiya quyidagicha aniqlanadi: bool ismaydonnomi() 10. …
5 / 28
inkapsilyatsiya - Page 5

Want to read more?

Download all 28 pages for free via Telegram.

Download full file

About "inkapsilyatsiya"

sinf a’zolari. inkapsilyatsiya sinf a’zolari. inkapsilyatsiya hafta: 2 ma’ruza: 2 fan: dasturlash 2 maqsad quyidagi tushunchalar bilan tanishish: sinf aniqlanishi va sinf implementatsiyasini ajratish #ifndef direktivasi orqali bir nechta bosh(header) fayllarni qo’shishning oldini olish sinflarda inline funksiyalar ma’lumot maydonlarini inkapsulyatsiyalash uchun get va set funksiyalari yordamida ma’lumot maydonlarini private holatda e’lon qilish ma’lumot maydoni sohasini tushunish dasturiy ta’minotni ishlab chiqishda sinf abstraksiyasini qo’llash 1. sinf aniqlanishidan(definition) sinf implementatsiyasini(implementation) ajratish sinf aniqlanishidan sinf implementatsiyasini bir biridan ajratish sinfga qo’shimchalar qo’shishni osonlashtiradi. c++ da sinf implementatsiyasini sinf aniqlanishid...

This file contains 28 pages in PPTX format (505.7 KB). To download "inkapsilyatsiya", click the Telegram button on the left.

Tags: inkapsilyatsiya PPTX 28 pages Free download Telegram