Mavzu: Android ilovalarini ishlab chiqishda Kotlin dasturlash tilidan foydalanish


Ma'lumotlar sinflarining dekompozitsiyasi



Download 155,06 Kb.
bet6/11
Sana27.03.2022
Hajmi155,06 Kb.
#513361
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
mus ish mobil

Ma'lumotlar sinflarining dekompozitsiyasi


Kotlin ma'lumotlar sinflarini o'zgaruvchiga ajratish qobiliyatini beradi:

1
2018-05-01 xoxlasa buladi 121 2
3
4
5
6
7
sakkiz
to'qqiz

fun main() {
val alice: Person = Person("Alice", 24)
val (username, userage) = alice
println("Name: $username Age: $userage") // Name: Alice Age: 24
}
data class Person(var name: String, var age: Int)


Umumlashtirish

Umumiy sinflar va funktsiyalar


Tovar yoki tovar usullari va sinflarni turlari darslari va vazifalari belgilangan vaqtda noma'lum bo'lgan moslamalarni foydalanishingiz mumkin qilurmiz bir texnik vakili. Jeneriklar sizga har xil turlarni almashtirish mumkin bo'lgan shablonlarni aniqlash imkonini beradi.
Umumlashtirish qanday vazifalarni hal qiladi? Aytaylik, bizda quyidagi sinf bor

Umumiy turlar


Umumiy turlar ob'ekt turlari parametrlangan turlarni ifodalaydi. Bu nimani anglatadi? Quyidagi sinfni ko'rib chiqing:

1

class Person(val id: T, val name: String)

Person klassi T parametridan foydalanadi . Parametrlar sinf nomidan keyin burchakli qavs ichida paydo bo'ladi. Bu parametr sinflar aniqlanmagan vaqtda ma'lum bo'lmagan ma'lumotlar turini ko'rsatadi.
Birlamchi konstruktor ididentifikatorni ifodalovchi xususiyatni belgilaydi. Bu T parametridan o'tadigan turni ifodalaydi. Person klassi aniqlanganda biz bu tur qanday bo'lishini bilmaymiz.
Parametrning nomi o'zboshimchalik bilan (agar u kalit so'zlarga mos kelmasa). Lekin T odatda qisqartirish sifatida ishlatiladi.
Shaxs turidan foydalanganda, uni ma'lum bir tur bilan yozish kerak, ya'ni T parametri orqali qaysi tur o'tkazilishini ko'rsatish kerak:

1
2018-05-01 xoxlasa buladi 121 2
3
4
5
6
7
sakkiz
to'qqiz
o'n

fun main() {
val tom: Person = Person(367, "Tom")
val bob: Person = Person("A65", "Bob")
println("${tom.id} - ${tom.name}")
println("${bob.id} - ${bob.name}")
}
class Person(val id: T, val name: String)

Ob'ektni yozish uchun tur nomidan keyin burchakli qavs ichida ma'lum bir tur ko'rsatiladi:

1

val tom: Person

Bu holda, biz aytamizki, T parametri aslida Int turini ifodalaydi. Shunday qilib, id xususiyati uchun Person ob'ektining konstruktoriga raqamli Int qiymatini berish kerak:

1

Person(367, "Tom")

Ikkinchi ob'ekt String sifatida yoziladi, shuning uchun id xususiyati uchun konstruktorda satr uzatiladi:

1

val bob: Person = Person("A65", "Bob")

Agar konstruktor T parametridan foydalansa, u holda, printsipial jihatdan, biz ob'ektning qaysi turi bo'yicha yozilishini ko'rsata olmaymiz - bu tur konstruktor parametrining turidan kelib chiqadi:

1
2018-05-01 xoxlasa buladi 121 2

val tom = Person(367, "Tom")
val bob = Person("A65", "Bob")

Shu bilan birga, tip parametrlari sinf ichida nafaqat xususiyatlarni aniqlashda, balki funktsiyalarda ham keng qo'llanilishi mumkin:

1
2018-05-01 xoxlasa buladi 121 2
3
4
5
6
7
sakkiz
to'qqiz
o'n
o'n bir
12
13
o'n to'rt
15
16
17
o'n sakkiz

fun main() {
val tom = Person("qwrtf2", "Tom")
tom.checkId("qwrtf2") // The same
tom.checkId("q34tt") // Different
}
class Person(val id: T, val name: String){
fun checkId(_id: T){
if(id == _id){
println("The same")
}
else{
println("Different")
}
}
}

Bu yerda Person klassi checkId()id ning _id parametri qiymatiga tengligini tekshiradigan funksiyani belgilaydi . Bu holda, _id parametri T tipida bo'ladi, ya'ni id xususiyati bilan bir xil bo'ladi.
Ta'kidlash joizki, umumiy turlar Kotlinda keng qo'llaniladi. Sinf tomonidan taqdim etilgan eng yorqin misol Array. Sinf parametri massiv qanday turdagi elementlarni saqlashini aniqlaydi:

1
2018-05-01 xoxlasa buladi 121 2

val people: Array = arrayOf("Tom", "Bob", "Sam")
val numbers: Array = arrayOf(1, 2, 3, 4)

Download 155,06 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish