TypeScript. #16
Klasslarlarda konstruktorlar
Klass tushunchasi bilan o'tgan darsimizda tanishgan edik. Klassning na'munasi yoki obyekti hosil qilinayotgan paytda unga qiymat berib ketish mumkin. Buni misolda ko'ramiz. O'tgan darsimizdagi kodga o'zgartirish kiritamiz.
1-qadam. Quyidagi kodni yozing.
Avvalgi darsimizda talaba1
obyektini yaratish uchun har bir xossani qaytadan yozib chiqqan edik. Bu misolda esa konstruktordan foydalandik. Konstruktorlar constructor
kalit so'zi bilan hosil qilinadi. Obyektdan nechta qiymat qabul qilmoqchi bo'lsak, konstruktorning argumenti ham shuncha bo'lishi kerak. Konstruktor tanasida o'sha argumentlar klassning xossalari bilan ta'minlanadi. Bunda this
kalit so'zi shu klassning o'zini ifodalaydi.
Endi talaba1
obyektini yaratamiz va unga qiymat berazmiz. Keyin klass ichidagi metodni chaqiramiz.
2-qadam. Quyidagi kodni yozing
3-qadam. Endi natijani ekranga chiqaramiz:
Interfeyslarni qo'llash
Intrefeys tushunchasi bilan avvalroq tanishgan edik. Interfeyslar obyektlarning xossalari va metodlarini ta'riflab beradi. Lekin ular bilan amallar bajarmaydi.
Agar bir nechta klass bir xil xossa va metodlarga ega bo'lsa, ularni qayta-qayta yozmaslik uchun interfeyslardan foydalanamiz. Ya'ni klasslarda interfeysni qo'llaymiz (implementation qilamiz).
Masalan, quyidagi rasmda Qushlarda uning rangi, qanot oʻlchami va tumshuq oʻlchami har bir qushda boʻlganligi uchun Qush interfeysiga kiritiladi. Lekin Kabutar klassining ham Bulbul klassining ham oʻziga xos xossa va metodlari boʻlishi mumkin.
Buni kod misolida koʻramiz:
1-qadam. Avval IQush nomli interfeys yaratib olamiz:
2-qadam. Kabutar klassini yaratib olamiz
3-qadam. Bulbul klassini yaratib olamiz
4-qadam. Kabutar
va Bulbul
klasslardan kabutar1
va bulbul1
nomli obyektlar hosil qilamiz va ularning xossalarini JSON formatda chiqaramiz. Keyin har bir klassga tegishli metodni ham chaqiramiz.
5-qadam. Natijani ekranga chiqaramiz:
Menimcha klasslarda interfeyslarni qo'llash tushunarli bo'ldi. Mana shunday deyarli o'xshash klasslar uchraganda, interfeyslardan foydalanishingiz mumkin.
Darsning boshqa qismlari @samtuitsoft kanalida berib boriladi.