June 25, 2020

TypeScript. #15

Klasslar.

O'tgan darsimizda interfeyslar haqida aytib o'tgan edik. Klasslar ham interfeyslarga o'xshab ketadi. Lekin ulardan farqi interfeyslarda xossa va metodlarni faqat e'lon qilish mumkin bo'lsa, klassda ushbu metodlardan foydalanish ham mumkin. Mantiqiy jihatdan klasslar shablonlarga qiyoslanadi. Ya'ni biror bir obyekt yaratish uchun avval uning shabloni yaratiladi. Klassni tarish bilan biz, bir xil kodlarni ko'p marta yozishdan saqlanamiz. Masalan, dasturimizda Talaba degan klass yaratsak, OTMdagi barcha talabalarni shu klassga tegishli qilib yaratishimiz mumkin. Agar bunday qilmagananimizda OTMda 10 mingta talaba bo'lsa har biri uchun alohida xossa va metodlarni yozib chiqishimizga to'g'ri kelgan bo'lardi.

Klasslarni tushuninsh uchun misol yozamiz:

1-qadam. Quyidagi kodni yozing.

Avval Talaba klassini yaratib olamiz:

Ko'rib turibmizki, bu yerda e'lon qilingan o'zgaruvchilarda xatolik bor. Nega bunday bo'lmoqda? Sabab shuki, TypeScript 2.7.2 versiyasidan boshlab, xossalarni faqat konstruktor bilan e'lon qilish belgilab qo'yilgan. Buni qilishdan maqsad, agar bir o'zgaruvchilardan foydalanmoqchi bo'lsa, lekin number turining o'rniga boshqa tur kelsa, unda dasturimiz buzilib ketadi. Shularning oldini olish uchun shunday qilingan.

Konstruktor mavzusini keyingi darsda ko'ramiz. Lekin konstruktorsiz ham e'lon qilishimiz mumkin. Buning uchun quyidagicha yozish mumkin.

2-qadam. Quyidagi kodni yozing.

Yoki quyidagicha:

Klassimizga bitta metod ham qo'shamiz. Bizning klass quyidagi ko'rinishga keladi.

3-qadam. Quyidagi kodni yozing.

Endi ushbu klassga oid bo'lgan obyekt yaramiz:

Bu yerda o'zgaruvchi Talaba turiga tegishli. Lekin biz uni qaysi turga tegishli ekanligini ko'rsatmasdan birdan qiymat berib ketmoqdamiz. Chunki, avval aytib o'tganimizdek, TypeScriptda turni e'lon qilishda qiymatdan foydalanish ham mumkin. Masalan, number turiga tegishli o'zgarivchiga shunchaki 2 qiymatini bersak, u number turiga tegishli ekanligini bilamiz.

Koʻpgina dasturlash tillarida dasturchi tomonidan yaratilgan turlarni xotiradan qancha joy olishini komplyatorga bildirib qoʻyish kerak boʻladi. Shuning uchun bunday holatda bizga new kalit soʻzi kerak boʻladi.

Endi bu talabaga xos xossalarni kiritamiz:

4-qadam. Quyidagi kodni yozing

Undan so'ng ushbu klassga tegishli metodni ishga tushiramiz

5-qadam. Endi natijani ekranga chiqaramiz:

Mana klass tushunchasi bilan tanishib oldik. Keyingi darsimizda klasslarda konstruktorni hosil qilishni o'rganamiz.

Darsning boshqa qismlari @samtuitsoft kanalida berib boriladi.