Dasturlash II 3-hafta mavzu: Ob’yektga yo‘naltirilgan fikrlash uslubi



Yüklə 2,27 Mb.
səhifə18/18
tarix11.11.2023
ölçüsü2,27 Mb.
#132197
1   ...   10   11   12   13   14   15   16   17   18
D2 maruza-3 Ob’ektga yo‘naltirilgan fikrlash. String sinfi, ob’yektlar massivi

3.10.4. Tushunarlilik
Uyg`unlik, tarkibiylik va unkapsulyatsiya qoidalarni tushuntirishning yaxshi boshqarish prinsipi sanaladi. Bundan tashqari, oson tushuntirish va tushunib olish uchun sinf aniq shartlarga ega bo`lishi lozim. Foydalanuvchilar sinflarni turli xil kombinatsiyalar, loyihalar va muhitlarga bog`lashi mumkin. Shuning uchun, sinfni foydalanuvchi u bilan ishlashi uchun hech qanday cheklovlar qo`ymaydigan yoki uning xususiyatlarini loyihalashtirishda foydalanuvchi ularning qiymatlarini o`zgartira oladigan yoki ular ishtirokida turli kombinatsiyalarni amalga oshira oladigan, funksiyalarni esa, yaratilgan dastlabki holatiga bog`lanib qolmaydigan, mustaqil qilib loyihalash lozim. Masalan, 2.13-kodli ro`yxatdagi Loan sinfi setLoanAmount, setNumberOfYears, va setAnnualInterestRate funksiyalaridan tashkil topgan. Bu xususiyatlar ixtiyoriy mavqedan turib sozlanishi mumkin.
Biz boshqa bir ma’lumotlar maydonidan qiymati olinishi mumkin bo`lgan boshqa bir ma’lumotlar maydonini e’lon qilishimiz shart emas. Masalan, quyidagi Person sinfi ikkita ma’lumotlar maydoni: birthDate va age ga ega. Bu yerda yosh tug`ilgan yili orqali olinsa ham bo`ladi, ya’ni bunda yoshni alohida ma’lumotlar maydoni sifatida aniqlash shart emas.
class Person
{
public:
...
private:
Date birthDate;
intage;
}


3.10.5. Mukammallik
Sinflar ko`p sonli mijozlar tomonidan foydalanish uchun mo`ljallab loyihalanadi. Ko`p sohada foydali dastur bo`lishi uchun, sinf xususiyatlar va funksiyalar orqali ko`p sonli sozlash tamoyillariga ega bo`lishi lozim. Masalan, string sinfi turli ko`rinishdagi dasturlar uchun 20 dan ortiq funksiyalarga ega.


3.10.6. Nusxa va Statik
Aniq bir sinf nusxasiga tegishli o`zgaruvchi yoki funksiya nusxa o`zgaruvchi yoki nusxa funksiya bo`lishi lozim. Sinfning barcha nusxalari uchun umumiy bo`lgan o`zgaruvchi statik (static) sifatida e’lon qilinishi lozim. Masalan, 3.9-kodli ro`yxatda berilgan Circle sinfidagi numberOfObjects o`zgaruvchisi Circle sinfining barcha ob’yektlari uchun umumi hisoblanadi va shuning uchun ham statik ko`rinishda e’lon qilingan. Hech bir nusxaga bog`liq bo`lmagan funksiya ham o`z navbatida, statik deb e’lon qilinishi lozim. Masalan, Circle sinfidagi getNumberOfObjects funksiya hech qanday aniq bir nusxaga bog`lanmagan va shuning uchun ham u statik deb e’lon qilingan.
Xatoliklarni chetlab o`tish va o`qishni osonlashtirish uchun har doim sinfning statik o`zgaruvchilari va funksiyalariga (ob’yektlariga emas) murojaat qilish kerak.
Konstruktor har doim nusxa hisoblanadi. Chunki undan aniq bir nusxani yaratishda foydalaniladi. Statik o`zgaruvchi yoki funksiya nusxa funksiyasi tomonidan chaqirilishi mumkin, lekin nusxa o`zgaruvchisi yoki finksiyasini statik funksiyadan turib chaqirib bo`lmaydi.
Yüklə 2,27 Mb.

Dostları ilə paylaş:
1   ...   10   11   12   13   14   15   16   17   18




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin