Junior
Kotlin'da oddiy va kengaytiruvchi metodlar o'rtasidagi farq nima?
sobes.tech AI
AIdan javob
Oddiy usul — sinf ichida e’lon qilingan funksiya.
Kengaytiruvchi usul — sinf tashqarisida e’lon qilingan, ammo uning a’zosidek harakat qiladigan funksiya. Kengaytiruvchi usulni e’lon qilishda, unga qo‘llanadigan qabul qiluvchi sinf nomi ko‘rsatiladi.
// Oddiy usul
class MyClass {
fun myMethod() {
// usulni amalga oshirish
}
}
// Kengaytiruvchi usul
fun String.removeVowels(): String {
// usulni amalga oshirish
}
fun main() {
val myObject = MyClass()
myObject.myMethod() // Oddiy usulni chaqirish
val myString = "Hello"
val stringWithoutVowels = myString.removeVowels() // Kengaytiruvchi usulni chaqirish
}
Asosiy farqlar:
- E’lon qilish: Oddiy usullar sinf ichida e’lon qilinadi, kengaytiruvchi usullar esa tashqarida.
- Sinf a’zolariga kirish: Oddiy usullar
privatevaprotecteda’zolarga to‘g‘ridan-to‘g‘ri kirish imkoniyatiga ega. Kengaytiruvchi usullarprivatevaprotecteda’zolarga to‘g‘ridan-to‘g‘ri kirish imkoniyatiga ega emas. this: Oddiy usulda,thisusul e’lon qilingan sinfning nusxasiga murojaat qiladi. Kengaytiruvchi usulda,thischaqirilayotgan kengaytma uchun qabul qiluvchi ob’ekt nusxasiga murojaat qiladi.- Merosi: Oddiy usullar vorislarda qayta yozilishi mumkin. Kengaytiruvchi usullar meros olmaydi va qayta yozilishi mumkin emas.
- Amalga oshirish: Oddiy usullar sinfning amalga oshirish qismidir. Kengaytiruvchi usullar alohida amalga oshiriladi va asl sinfni o‘zgartirmaydi.
Kengaytiruvchi usullar mavjud sinflarga funksionallik qo‘shish uchun foydalidir, masalan, tashqi kutubxonalar yoki Kotlinning standart kutubxonasiga.