Darsliklar Kotlin Method (Sinf/Class)

Kotlin Kotlin Method (Sinf/Class)

Metod (sinf ichida) — obyektning “nima qila olishini” belgilaydigan xatti-harakat. Agar xususiyatlar obyektning ma’lumotini ifodalasa, metodlar shu ma’lumot ustida amal bajaradi. Aynan metodlar tufayli obyekt jonli, faol birlikka aylanadi.

Metod — sinfga tegishli funksiya bo’lib, o’sha sinf obyektining xususiyatlariga bevosita murojaat qila oladi va ular ustida amal bajaradi.

Ma’lumotni o’zgartiradigan metod

Metod obyektning o’z xususiyatlarini o’qishi ham, o’zgartirishi ham mumkin:

class Hisob {
    var balans = 0

    fun toldirish(summa: Int) {
        balans += summa
    }

    fun korsat() {
        println("Balans: $balans")
    }
}

fun main() {
    val h = Hisob()
    h.toldirish(500)
    h.toldirish(300)
    h.korsat()
}
Balans: 800

toldirish metodi obyektning balans xususiyatini o’zgartirdi. Metod ichida balans deb yozganda, u aynan chaqirilgan obyektning xususiyatini bildiradi.

this kalit so’zi

this chaqirilgan obyektning o’ziga ishora qiladi. U parametr nomi xususiyat nomi bilan bir xil bo’lganda kerak:

class Talaba {
    var ball = 0
    fun ornat(ball: Int) {
        this.ball = ball   // this.ball — xususiyat, ball — parametr
    }
}

fun main() {
    val t = Talaba()
    t.ornat(90)
    println("Ball: ${t.ball}")
}
Ball: 90

this.ball obyektning xususiyatini, oddiy ball esa parametrni bildiradi. this chalkashlikni bartaraf etadi.

Kengaytma funksiyalari

Kotlin’ning kuchli imkoniyati — kengaytma funksiyalari. Ular mavjud sinfga (hatto standart sinflarga) yangi metod qo’shadi, sinfni o’zgartirmasdan:

fun String.salomBer(): String {
    return "Salom, $this!"
}

fun main() {
    println("Farrux".salomBer())
}
Salom, Farrux!

fun String.salomBer() — String sinfiga yangi metod qo’shdi. Endi har qanday matnda .salomBer() ni chaqirish mumkin. Bu Kotlin’ning eng sevimli va kuchli xususiyatlaridan biri.

Metod turlari

Kotlin metodlarini jadvalda ko’ramiz:

Tur Tavsifi
Oddiy metod sinf ichidagi funksiya
Kengaytma funksiyasi mavjud sinfga yangi metod
Bir ifodali metod = ifoda bilan qisqa

Xulosa

Bu bo’limda metodlar bilan ma’lumotni o’zgartirish, this kalit so’zi va Kotlin’ning kuchli kengaytma funksiyalarini ko’rib chiqdik. Metodlar — obyektni jonli qiladigan xatti-harakat. Keyingi darsda konstruktorlarga o’tamiz.