Sobes.tech
Junior

Wat is het verschil tussen gewone en uitbreidende methoden in Kotlin?

sobes.tech AI

Antwoord van AI

De gewone methode is een functie die binnen een klasse wordt gedeclareerd.

De uitbreidende methode is een functie die buiten de klasse wordt gedeclareerd, maar zo werkt alsof het een lid ervan is. Bij het declareren van een uitbreidende methode wordt de naam van de ontvangende klasse aangegeven waarop het wordt toegepast.

// Gewone methode
class MyClass {
    fun myMethod() {
        // implementatie van de methode
    }
}

// Uitbreidende methode
fun String.removeVowels(): String {
    // implementatie van de methode
}

fun main() {
    val myObject = MyClass()
    myObject.myMethod() // Aanroep van de gewone methode

    val myString = "Hello"
    val stringWithoutVowels = myString.removeVowels() // Aanroep van de uitbreidende methode
}

Belangrijke verschillen:

  • Declaratie: Gewone methoden worden binnen de klasse gedeclareerd, uitbreidende methoden buiten.
  • Toegang tot klassemleden: Gewone methoden hebben directe toegang tot private en protected leden van de klasse. Uitbreidende methoden hebben geen directe toegang tot private en protected leden.
  • this: In een gewone methode verwijst this naar de instantie van de klasse waarin de methode is gedeclareerd. In een uitbreidende methode verwijst this naar de instantie van het ontvangende object waarvoor de uitbreiding wordt aangeroepen.
  • Erfelijkheid: Gewone methoden kunnen worden overschreven in subklassen. Uitbreidende methoden worden niet geërfd en kunnen niet worden overschreven.
  • Implementatie: Gewone methoden maken deel uit van de implementatie van de klasse. Uitbreidende methoden worden afzonderlijk geïmplementeerd en wijzigen de oorspronkelijke klasse niet.

Uitbreidende methoden zijn handig om functionaliteit toe te voegen aan bestaande klassen zonder ze te wijzigen, bijvoorbeeld aan klassen uit externe bibliotheken of de standaardbibliotheek van Kotlin.