Sobes.tech
Junior

Kotlin-də adi və genişləndirici metodlar arasında fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Adi üsul — sinf daxilində elan olunan funksiya.

Genişləndirici üsul — sinfdən kənarda elan olunan, lakin onun üzvü kimi hərəkət edən funksiya. Genişləndirici üsul elan edilərkən, ona tətbiq olunan qəbul edən sinfin adı göstərilir.

// Adi üsul
class MyClass {
    fun myMethod() {
        // üsulun həyata keçirilməsi
    }
}

// Genişləndirici üsul
fun String.removeVowels(): String {
    // üsulun həyata keçirilməsi
}

fun main() {
    val myObject = MyClass()
    myObject.myMethod() // Adi üsulu çağırış

    val myString = "Hello"
    val stringWithoutVowels = myString.removeVowels() // Genişləndirici üsul çağırış
}

Əsas fərqlər:

  • Elan: Adi üsullar sinf daxilində elan edilir, genişləndirici üsullar isə xaricdə.
  • Sinf üzvlərinə giriş: Adi üsullar privateprotected üzvlərə birbaşa giriş imkanı verir. Genişləndirici üsullar privateprotected üzvlərə birbaşa girişə malik deyil.
  • this: Adi üsulda, this sinifin nümunəsinə istinad edir. Genişləndirici üsulda, this çağırılan genişləndirmə üçün qəbul edən obyekt nümunəsinə istinad edir.
  • Miras: Adi üsullar alt siniflərdə yenidən yaza bilər. Genişləndirici üsullar miras alınmır və yenidən yaza bilməz.
  • İcra: Adi üsullar sinifin icra hissəsinin bir hissəsidir. Genişləndirici üsullar ayrıca icra edilir və ilkin sinfi dəyişmir.

Genişləndirici üsullar mövcud sinflərə funksionallıq əlavə etmək üçün faydalıdır, məsələn, xarici kitabxanalardan və ya Kotlin-in standart kitabxanasından sinflərə.