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,
privateveprotectedsınıf üyelerine doğrudan erişebilir. Genişletme yöntemleri,privateveprotectedüyelere doğrudan erişemez. this: Normal bir yöntemde,thistanı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.