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.