Académique Documents
Professionnel Documents
Culture Documents
1 package org.kotlinlang.play // 1
2
3 fun main() { // 2
4 println("Hello, World!") // 3
5 }
1 var e: Int // 1
2 println(e) // 2
1 var e: Int // 1
2 println(e) // 2
1 val d: Int // 1
2
3 if (someCondition()) {
4 d = 1 // 2
5 } else {
6 d = 2 // 2
7 }
8
9 println(d) // 3
1 val d: Int // 1
2
3 if (someCondition()) {
4 d = 1 // 2
5 } else {
6 d = 2 // 2
7 }
8
9 println(d) // 3
1 val d: Int // 1
2
3 if (someCondition()) {
4 d = 1 // 2
5 } else {
6 d = 2 // 2
7 }
8
9 println(d) // 3
// 3
6 }
7 }
• Une fonction prenant une chaı̂ne nullable et renvoyant sa
description.
// 3
6 }
7 }
• Une fonction prenant une chaı̂ne nullable et renvoyant sa
description.
• Si la chaı̂ne donnée n’est pas null et n’est pas vide, renvoie des
informations sur sa longueur.
Ahmed Fouad El ouafdi (UIZ) Short Title December 12, 2023 19 / 89
Travailler avec Nulls en Kotlin
Pour travailler avec des valeurs null, Kotlin offre un suivi des nulls
pour traiter élégamment de telles situations.
1 fun describeString(maybeString: String?):
String { // 1
2 if (maybeString != null && maybeString.
length > 0) { // 2
3 return "Chaı̂ne de longueur ${
maybeString.length}"
4 } else {
5 return "Chaı̂ne vide ou null"
// 3
6 }
7 }
• Une fonction prenant une chaı̂ne nullable et renvoyant sa
description.
• Si la chaı̂ne donnée n’est pas null et n’est pas vide, renvoie des
informations sur sa longueur.
• Sinon, informe l’appelant que la chaı̂ne est vide ou null.
Ahmed Fouad El ouafdi (UIZ) Short Title December 12, 2023 19 / 89
Travailler avec Nulls en Kotlin
1 class Question<T>(
2 val questionText: String,
3 val answer: T,
4 val difficulty: String
5 )
Définition :
• Une classe abstraite ne peut pas être instanciée directement.
• Elle sert de modèle pour d’autres classes, fournissant des
méthodes abstraites et des implémentations concrètes.
Caractéristiques :
• Contient des méthodes abstraites (non implémentées).
• Peut également contenir des méthodes concrètes
(implémentées).
• Nécessite une sous-classe pour fournir des implémentations
concrètes des méthodes abstraites.
Définition :
• Une interface est une structure Kotlin qui définit un ensemble
de méthodes (abstraites) et de propriétés.
• Une classe peut implémenter une ou plusieurs interfaces,
fournissant ainsi des implémentations concrètes de ces
méthodes.
Caractéristiques :
• Ne peut pas être instanciée directement.
• Une classe interface ne peut pas contenir de fonctions
implémentées (méthodes avec un corps) comme c’est le cas
pour les classes abstraites.
• Permet à une classe de déclarer qu’elle fournira une
implémentation pour un ensemble de méthodes spécifiées.
class Exemple {
val proprieteVal: Int = 42 // Lecture seule
var proprieteVar: String = "Mutable" // Mutable
}
1 Un objet compagnon
n’est pas héritable. Mais il
peut hériter d’une autre
classe ou implémenter
des interfaces.
2 Dans cet exemple,
MyClass a un objet
compagnon (companion
object) qui hérite de
BaseClass et implémente
ExampleInterface.
3 L’objet compagnon a sa
propre méthode
companionFunction.
1 Un objet compagnon
n’est pas héritable. Mais il
peut hériter d’une autre
classe ou implémenter
des interfaces.
2 Dans cet exemple,
MyClass a un objet
compagnon (companion
object) qui hérite de
BaseClass et implémente
ExampleInterface.
3 L’objet compagnon a sa
propre méthode
companionFunction.
Figure: Comparaison
Ahmed Fouad El ouafdi (UIZ) des performances
Short Title en terme de temps d’accès
December 12, 2023 entre
62 / 89
Classes Inline en Kotlin: Héritage et limitations
Les alias de types fournissent des noms alternatifs pour les types
existants, permettant de raccourcir les noms de types trop longs.
Exemple pour raccourcir les types génériques:
• typealias NodeSet = Set<Network.Node>
• typealias FileTable<K> = MutableMap<K,
MutableList<File>>