Sobes.tech
Junior

Kotlin'de normal metodlar ile genişleten metodlar arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Normal yöntem, sınıf içinde tanımlanan bir fonksiyondur.

Genişletme yöntemi, sınıf dışında tanımlanan, ancak sanki onun bir üyesiymiş gibi davranan bir fonksiyondur. Bir genişletme yöntemi tanımlarken, uygulandığı alıcı sınıfın adı belirtilir.

// Normal yöntem
class MyClass {
    fun myMethod() {
        // yöntem uygulaması
    }
}

// Genişletme yöntemi
fun String.removeVowels(): String {
    // yöntem uygulaması
}

fun main() {
    val myObject = MyClass()
    myObject.myMethod() // Normal yöntemi çağırma

    val myString = "Hello"
    val stringWithoutVowels = myString.removeVowels() // Genişletme yöntemini çağırma
}

Ana farklar:

  • Tanımlama: Normal yöntemler sınıf içinde tanımlanır, genişletme yöntemleri dışında.
  • Sınıf üyelerine erişim: Normal yöntemler, private ve protected sınıf üyelerine doğrudan erişebilir. Genişletme yöntemleri, private ve protected üyelere doğrudan erişemez.
  • this: Normal bir yöntemde, this tanımlandığı sınıfın örneğine atıfta bulunur. Genişletme yönteminde, this çağrılan genişletmenin alıcı nesnesine atıfta bulunur.
  • Kalıtım: Normal yöntemler alt sınıflarda yeniden tanımlanabilir. Genişletme yöntemleri kalıtımsal değildir ve yeniden tanımlanamaz.
  • Uygulama: Normal yöntemler sınıfın bir parçasıdır. Genişletme yöntemleri ayrı olarak uygulanır ve orijinal sınıfı değiştirmez.

Genişletme yöntemleri, mevcut sınıflara fonksiyonellik eklemek için kullanışlıdır, örneğin, harici kütüphanelerden veya Kotlin'in standart kütüphanesinden sınıflara.