Kotlin - Extension

Dans ce chapitre, nous allons découvrir une autre nouvelle fonctionnalité de Kotlin appelée «Extension». En utilisant l'extension, nous pourrons ajouter ou supprimer certaines fonctionnalités de méthode même sans les hériter ou les modifier. Les extensions sont résolues statistiquement. Il ne modifie pas réellement la classe existante, mais il crée une fonction appelable qui peut être appelée avec une opération de point.

Extension de fonction

En extension de fonction, Kotlin permet de définir une méthode en dehors de la classe principale. Dans l'exemple suivant, nous verrons comment l'extension est implémentée au niveau fonctionnel.

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
}

Dans l'exemple ci-dessus, nous n'avons aucune méthode dans la classe «Alien» nommée «addMySkills ()», cependant, nous implémentons toujours la même méthode ailleurs en dehors de la classe. C'est la magie de l'extension.

Le morceau de code ci-dessus générera la sortie suivante dans le navigateur.

JAVA SQL

Extension d'objet

Kotlin fournit un autre mécanisme pour implémenter la fonctionnalité statique de Java. Ceci peut être réalisé en utilisant le mot-clé «objet compagnon». En utilisant ce mécanisme, nous pouvons créer un objet d'une classe dans une méthode de fabrique et plus tard, nous pouvons simplement appeler cette méthode en utilisant la référence du nom de la classe. Dans l'exemple suivant, nous allons créer un «objet compagnon».

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

Le morceau de code ci-dessus donnera la sortie suivante dans le navigateur.

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

L'exemple ci-dessus semble statique en Java, cependant, en temps réel, nous créons un objet en tant que variable membre de cette même classe. C'est pourquoi il est également inclus dans la propriété d'extension et peut également être appelé comme extension d'objet. Vous étendez essentiellement l'objet de la même classe pour utiliser certaines des fonctions membres.