S2 PROGRAMMATION MOBILE
Miloud LAHMAIM
RSSP2
2023-2024
Input / Output
Deux fonctions pour Input :
print() : écrire sur la console sans retour à la ligne
println() : écrire sur la console avec retour à la ligne
Une fonctions pour Output :
readLine() : Lire une ligne, cette fonction retourne une chaîne de caractère (String)
Si cette fonction rencontre de problème (null par exemple) on la doit la suffixer par le
mot clé !! (the not-null assertion operator)
!! Veut dire que laisser passer cette erreur lors de la compilation est arrêter le
programme en cas d’erreur lors de l’’execusion.
Exemple :
=>
2
Structure de contrôle conditionnelle
if/else when
3
Structure de contrôle conditionnelle
Toutes les structures de contrôle conditionnelles sont des expressions, et pourront donc
renvoyer une valeur :
4
Exercice 1
En utilisant le fait que when est une expression, écrire
un programme concis équivalent au programme suivant :
5
Structure de contrôle répétitive
Comme tous les langages de programmation 3 manières pour faire des itérations :
for while do/while
Le pas par défaut dans for = 1, si on veut le changer on utilise le mot clé step :
Si on veut utiliser une décrémentation dans for on utilise le mot clé downTo :
Les mots clé break et continue sont définit dans kotlin 6
Exercice 2
Ecrire un programme pour afficher tous les entiers paires
entre 1 et 100
7
Exercice 3
Ecrire un programme pour afficher les lettres de A à Z
8
Fonctions : Unit
Le type par défaut en kotlin est Unit (void)
La fonction main est de type Unit :
Les fonctions qui ne retournent pas de valeur sont de type Unit :
9
Fonctions : return
10
Exercice 4
En définissant une fonction Fact, écrire un programme
pour afficher le factoriel d’un entier = 10
11
Exercice 5
En définissant une fonction Max, écrire un programme
pour afficher le Maximum entre deux entiers lus au
clavier
12
Fonctions : Paramètres par défaut
Si on initialise un paramètre dans une fonction par une valeur (appelée valeur
par défaut), alors on peut appeler cette fonction de deux manière
Avec ce paramètre : dans ce cas la fonction prendra comme valeur la valeur passée
Sans paramètre : dans ce cas la fonction prendra comme valeur la valeur par défaut
13
Fonctions : Paramètres nommés
Lors d’appel d’un fonction on peut changer l’ordre des
paramètres en donnant leurs noms :
14
Fonctions : Lambda
On peut définir une fonction sans nom (lambda) :
Dans ce cas cette fonction peut être appelée par n’importe quel nom :
15
Les classes
Une classe est composée de deux parties (membres) :
Les attributs (parfois appelés données membres) : il s'agit des données représentant l'état de l'objet
Les méthodes (parfois appelées fonctions membres): il s'agit des opérations applicables aux objets
Pour récupérer ou modifier les propriétés de notre classe, nous pouvons utiliser
des assesseurs (ou "getters") et des mutateurs (ou "setters"). Ou bien appelez
directement la propriété par son nom !
On peut définir plusieurs fonctions ayant le même nom avec différents variables
(overloading of functions)
16
Les classes : Object & Primary Constructor
Pour "construire" ou plutôt "instancier" une classe afin de créer un objet, nous utilisons un de ses constructeurs.
Par défaut toute classe à un constructeur primaire (celui entre les () devant le nom de la classe)
Le constructeur primaire peut être vide ou non.
Pour créer un objet d’un classe on utilise le même syntaxe de la déclaration (var ou val)
17
Les classes : Modificateurs de visibilité
4 principaux modificateurs de visibilité pour les classes et les membres (variables, fonctions,
etc.) d’une classe :
private : Un membre déclaré comme private sera visible uniquement dans la classe où il est déclaré.
protected : Un membre déclaré comme protected sera visible uniquement dans la classe où il est déclaré ET
dans ses sous-classes (via l’héritage).
internal : Un membre déclaré comme internal sera visible par tous ceux du même module. Un module est un
ensemble de fichiers compilés ensemble (comme une librairie Gradle ou Maven, par exemple).
public : Un membre déclaré comme public sera visible partout et par tout le monde.
Par défaut, tous les membres (variable, classes et fonctions) sont public (sans déclarer le mot clé
public)
18
Les classes : Socondaries constructors
Pour ajouter des constructeur secondaire :
On utilise le mot clé constructor pour la déclaration
Les paramètre de cette classe doivent être déclarer sans les mots clé var ou val (juste le nom et le type)
Si le constructeur primaire existe, alors on doit l’appeler lors de la déclaration de celui secondaire on ajoutant
: this (les paramètres de la classe primaire)
Pour référencier les attributs de la classe en utilise le mot clé this (La classe courante)
On peut définir plusieurs constructeurs secondaires (avec différents paramètres) , overloading of constructors
Ou =>
19
Les classes : data
Une classe data est une classe ayant des fonctions définis automatiquement telles que :
equals() (==)
toString() (le nom de classe tout court)
copy() (=)
20
Exercice 6
Définir une classe Vehicule ayant comme attribut :
Matricule, Marque, Modèle
Définir pour cette classe 3 constructeurs:
Constructeur primaire ayant comme attribut le matricule
Constructeur secondaire ayant comme attribut matricule et Marque
Constructeur secondaire ayant comme attribut matricule , Marque et Modèle
Définir pour cette classe un fonction d’affichage des 3 attributs
Dans la fonction main créer et afficher 2 objets et faire une comparaison entre
eux
21