Sinf tushunchasi va sinflarning e’lon qilinishi
Ma’lumotlar maydoni inkapsulyatsiyasi
Download 1.06 Mb.
|
Yakuniy dasturlash nazariy savollarga javaoblar — копия
5. Ma’lumotlar maydoni inkapsulyatsiyasi (private, get funksiya, set funksiya);Ma’lumotlar maydoni xavfsizligi sinf ma’lumotlarini himoyalaydi va xizmatlarini soddalashtiradi. 1.1-kodli ro`yxatda berilgan Circle sinfida berilgan radius ma’lumotlar maydonini to`g`ridan-to`g`ri o`zgartirish mumkin (Masalan, circle1.radius = 5). Ikki sababga ko`ra bu juda yaxshi amaliyot:
Birinchidan, ma’lumotlarga o`zgartirish kiritish mumkin; Ikkinchidan, bu sinfning qayta sozlanishga qulayligini va xatoliklarga bardoshliligini oshiradi.Tasavvur qiling, boshqa dasturlar foydalangandan keyin, radius qiymati manfiy bo`lmasligi uchun Circle sinfiga o`zgartirish kiritmoqchisiz. Siz nafaqat Circle sinfini o`zgartirishingiz kerak, balki Circle sinfi ishlatadigan dasturlarni ham o`zgartirishingiz kerak bo`ladi. Bu mijozlarning radiusni to`g`ridan-to`g`ri o`zgartira olishlari bilan bog`liq (masalan, myCircle.radius = -5).To`g`ridan-to`g`ri xususiyatlarni o`zgartirishning oldini olish uchun esa private kalit so`zidan foydalanishimiz lozim. Bu ma’lumotlar maydoni inkapsulyatsiyasi deb nom olgan. Ko‘rsatkichlardan funksiya argumenti sifatida foydalanish (Kalit so’zlar: funksiya, argument, pointer, new, obyektni uzatish, funksiyaga uzatish ) O`zgarmas ko`rsatkich o`zgarmas xotira katakchasini ko`rsatadi, ammo xotira katakchasidagi faol qiymat o`zgartirilishi mumkin.Biz const kalit so`zidan foydalanib o`zgarmaslarni e’lon qilishni o`rgandik. O`zgarmas bir marta e’lon qilinadi va qiymatini o`zgartirmaydi. Bundan tashqari biz o`zgarmas ko`rsatkichni e’lon qilishimiz mumkin. Misol uchun: double radius = 5; double* const p = &radius; Bu yerda p – o`zgarmas ko`rsatkich. U bitta ko`rsatma satrining o`zida ham e’lon qilinishi va ham qiymat bilan ta’minlanishi lozim. Keyinchalik unga yangi manzilni ta’minlab bo`lmaydi. Garchi p o`zgarmas bo`lsada, p tomonidan ko`rsatilgan ma’lumot o`zgarmas emas. Uni o`zgartirishimiz mumkin. Masalan, quyidagi ko`rsatma satrida radiusning qiymati 10 ga o`zgartiriladi: *p = 10; Xo`sh, havolalangan ma’lumotni o`zgarmas sifatida e’lon qila olamizmi? Ha. Buning uchun quyidagicha ko`rinishda, ma’lumot turi oldidan const – kalit so`zini qo`shib qo`yishimiz kerak bo`ladi: Bunday holatda ko`rsatkich va u ko`rsatgan ma’lumotlar ham o`zgarmas sanaladi. Agar biz ko`rsatkichni const double* p = &radius;ko`rinishida e’lon qilsak, ko`rsatkich o`zgarmas emas, lekin ko`rsatkich ko`rsatgan ma’lumot o`zgarmas bo`ladi. Download 1.06 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling