Exercice 1 sur 4
Ta première méthode
Une méthode est un bloc de code réutilisable qui porte un nom.
static void bonjour() {
IO.println("Bonjour !");
}
void signifie : la méthode ne renvoie rien, elle fait juste quelque chose.
La méthode saluer est déjà définie. Appelle-la dans main.
Code de départ
void saluer() {
IO.println("Bienvenue !");
}
void main() {
// Appelle saluer()
}
Contexte
La pile d'appels
Quand une méthode est appelée, la JVM empile un nouveau cadre de pile (stack frame) sur la pile d'appels (call stack). Il contient les paramètres, les variables locales et l'adresse de retour.
Quand la méthode se termine, le cadre est retiré et l'exécution revient en arrière. Trop d'appels imbriqués (par ex. une récursion sans fin) → StackOverflowError.
Exercice 2 sur 4
Méthode avec un paramètre
Les méthodes peuvent recevoir des valeurs d'entrée (des paramètres) :
static void direBonjour(String nom) {
IO.println("Bonjour " + nom);
}
La méthode afficherDouble reçoit un nombre et affiche le double de sa valeur. Ajoute la seule ligne qui manque.
Code de départ
void afficherDouble(int nombre) {
// Affiche nombre * 2
}
void main() {
afficherDouble(5);
afficherDouble(12);
}
Contexte
Passage par valeur
Java passe toujours les paramètres par valeur — la méthode reçoit une copie de la valeur. Si tu modifies le paramètre dans la méthode, la variable d'origine ne change pas.
Avec les objets, c'est la référence qui est copiée — tu peux donc modifier l'objet lui-même, mais pas la référence. Ça piège les débutants en permanence.
Exercice 3 sur 4
Return
Au lieu de simplement afficher quelque chose, une méthode peut renvoyer une valeur :
static int foisDeux(int x) {
return x * 2;
}
À la place de void, tu écris maintenant le type de retour (int), et return renvoie la valeur.
Ajoute la ligne return pour que carre renvoie le carré du nombre.
Code de départ
int carre(int n) {
// Renvoie n * n
return 0;
}
void main() {
IO.println(carre(4));
IO.println(carre(7));
}
Contexte
void vs. type de retour
void = "cette méthode ne renvoie rien". N'importe quel autre type (int, String, etc.) t'oblige à renvoyer une valeur avec return.
Le compilateur vérifie que chaque chemin possible se termine par un return. Si tu as un if sans else et que tu ne fais le return que dedans, Java râle — après tout, la condition pourrait être false.
Exercice 4 sur 4
Deux paramètres
Une méthode peut avoir plusieurs paramètres — séparés par des virgules :
static int additionner(int a, int b) {
return a + b;
}
Corrige la ligne return : renvoie la plus grande des deux valeurs.
Astuce : tu peux écrire : if (a > b) return a; else return b;
Code de départ
int max(int a, int b) {
// Renvoie la plus grande valeur
return 0;
}
void main() {
IO.println(max(3, 7));
IO.println(max(10, 2));
}
Contexte
Surcharge de méthodes
En Java, tu peux avoir plusieurs méthodes avec le même nom, tant que leurs paramètres sont différents. C'est ce qu'on appelle la surcharge (overloading) :
int max(int a, int b) et double max(double a, double b) peuvent coexister. Java choisit automatiquement la bonne version selon les types que tu passes.