Darsliklar Kotlin Obyekt va sinflar

Kotlin Kotlin Obyekt va sinflar

Obyekt va sinflar — OOP ning amaliy poydevori. OOP darsida ular bilan qisqacha tanishdik; endi sinf tuzilishini, uning xususiyatlari va metodlarini batafsil ko’rib chiqamiz. Kotlin sinflari juda ixcham va kuchli.

Sinf (class)obyektlar yaratish uchun andoza. U obyektning xususiyatlarini (properties) va metodlarini bir joyda ta’riflaydi.

Sinf tuzilishi

Sinf ichida xususiyatlar va metodlar bo’ladi. Mahsulot sinfini quramiz:

class Mahsulot {
    var nomi = ""
    var narxi = 0

    fun korsat() {
        println("$nomi — $narxi so'm")
    }
}

fun main() {
    val telefon = Mahsulot()
    telefon.nomi = "iPhone"
    telefon.narxi = 12000000
    telefon.korsat()
}
iPhone — 12000000 so'm

Bu yerda nomi va narxi — xususiyatlar (properties), korsat() — metod. Metod obyektning o’z xususiyatlariga bevosita murojaat qila oladi.

Metod — qiymat qaytaruvchi

Metod natija qaytarishi mumkin:

class Kvadrat {
    var tomon = 0
    fun yuza(): Int = tomon * tomon
}

fun main() {
    val k = Kvadrat()
    k.tomon = 5
    println("Yuza: ${k.yuza()}")
}
Yuza: 25

yuza() metodi tomon xususiyatiga tayanib hisob-kitob qildi. Bu yerda bir ifodali metod (=) yozdik.

data class — ma’lumot sinfi

Kotlin’ning ajoyib imkoniyati — data class. U ma’lumot saqlash uchun avtomatik ko’plab foydali metodlar yaratadi:

data class Foydalanuvchi(val ism: String, val yosh: Int)

fun main() {
    val u = Foydalanuvchi("Farrux", 26)
    println(u)             // avtomatik chiroyli chiqarish
    println(u.ism)
}
Foydalanuvchi(ism=Farrux, yosh=26)
Farrux

data class — bir qatorda to’liq ma’lumot sinfini yaratdi. U avtomatik toString (chiroyli chiqarish), equals va boshqa metodlarni beradi. Bu ma’lumot saqlash uchun ideal va Kotlin’da juda ko’p ishlatiladi.

Xususiyat (property)

Kotlin’da maydonlar aslida xususiyat (property) deb ataladi — ular avtomatik get/set ga ega. Bu inkapsulatsiyani soddalashtiradi (buni keyingi darslarda ko’ramiz).

Xulosa

Bu bo’limda sinf tuzilishi (xususiyat va metodlar), qiymat qaytaruvchi metodlar va Kotlin’ning kuchli data class imkoniyatini ko’rib chiqdik. Sinf — ma’lumot va xatti-harakatni jamlovchi birlik. Keyingi darsda metodlarga chuqurroq kirib boramiz.