Kotlin - Erweiterung

In diesem Kapitel erfahren Sie mehr über eine weitere neue Funktion von Kotlin namens "Extension". Mit der Erweiterung können wir einige Methodenfunktionen hinzufügen oder entfernen, auch ohne sie zu erben oder zu ändern. Erweiterungen werden statistisch aufgelöst. Die vorhandene Klasse wird nicht geändert, es wird jedoch eine aufrufbare Funktion erstellt, die mit einer Punktoperation aufgerufen werden kann.

Funktionserweiterung

In der Funktionserweiterung ermöglicht Kotlin das Definieren einer Methode außerhalb der Hauptklasse. Im folgenden Beispiel sehen wir, wie die Erweiterung auf Funktionsebene implementiert wird.

class Alien {
   var skills : String = "null"
	
   fun printMySkills() {
      print(skills)
   }		
}
fun main(args: Array<String>) {
   var  a1 = Alien()
   a1.skills = "JAVA"
   //a1.printMySkills()
	
   var  a2 = Alien()
   a2.skills = "SQL"
   //a2.printMySkills()
	
   var  a3 = Alien()
   a3.skills = a1.addMySkills(a2)
   a3.printMySkills()
}
fun Alien.addMySkills(a:Alien):String{
   var a4 = Alien()
   a4.skills = this.skills + " " +a.skills
   return a4.skills
}

Im obigen Beispiel haben wir keine Methode in der "Alien" -Klasse mit dem Namen "addMySkills ()". Wir implementieren dieselbe Methode jedoch weiterhin an einer anderen Stelle außerhalb der Klasse. Dies ist die Magie der Erweiterung.

Der obige Code generiert die folgende Ausgabe im Browser.

JAVA SQL

Objekterweiterung

Kotlin bietet einen weiteren Mechanismus zur Implementierung der statischen Funktionalität von Java. Dies kann mit dem Schlüsselwort „Begleitobjekt“ erreicht werden. Mit diesem Mechanismus können wir ein Objekt einer Klasse innerhalb einer Factory-Methode erstellen und diese Methode später einfach unter Verwendung der Referenz des Klassennamens aufrufen. Im folgenden Beispiel erstellen wir ein „Begleitobjekt“.

fun main(args: Array<String>) {
   println("Heyyy!!!"+A.show())
}
class A {
   companion object {
      fun show():String {
         return("You are learning Kotlin from TutorialsPoint.com")
      }
   }
}

Der obige Code liefert die folgende Ausgabe im Browser.

Heyyy!!! You are learning Kotlin from TutorialsPoint.com

Das obige Beispiel scheint in Java statisch zu sein. In Echtzeit erstellen wir jedoch ein Objekt als Mitgliedsvariable derselben Klasse. Aus diesem Grund ist es auch in der Erweiterungseigenschaft enthalten und kann alternativ als Objekterweiterung bezeichnet werden. Grundsätzlich erweitern Sie das Objekt derselben Klasse, um einige der Elementfunktionen zu verwenden.