Introduction au langage Java et concepts clés
Introduction au langage Java et concepts clés
Iadine GOUNDETE
Ingénieur en Architecture Logicielle
[Link]@[Link]
Page 0 sur 64
+229 0197486983
Table des matières
Chapitre 1 – No,ons de base de Java ........................................................................................ 4
1. Introduc,on au langage Java .............................................................................................. 4
2. La machine virtuelle Java (JVM) ......................................................................................... 4
3. Structure d’un programme Java ......................................................................................... 5
4. Variables, constantes et types de données ........................................................................ 5
5. Opérateurs et expressions .................................................................................................. 6
6. Entrées et sor,es standards ............................................................................................... 7
7. Exercices pra,ques ............................................................................................................. 7
À retenir ........................................................................................................................... 8
Chapitre 2 – Les instruc,ons de contrôle ................................................................................... 9
1. Introduc,on ........................................................................................................................ 9
2. Les structures condi,onnelles ............................................................................................ 9
3. L’instruc,on switch ........................................................................................................... 10
4. Les structures itéra,ves (boucles) .................................................................................... 11
5. Instruc,ons de saut .......................................................................................................... 12
6. Portée et durée de vie des variables ................................................................................ 13
7. Exercices pra,ques ........................................................................................................... 14
À retenir ......................................................................................................................... 15
Chapitre 3 – Classes et Objets .................................................................................................. 16
1. Introduc,on ...................................................................................................................... 16
2. Défini,on d’une classe et d’un objet................................................................................ 16
3. Les a@ributs (ou propriétés) ............................................................................................. 17
4. Les méthodes ................................................................................................................... 17
5. Les constructeurs.............................................................................................................. 18
6. Encapsula,on et visibilité ................................................................................................. 19
7. Méthodes et a@ributs sta,ques ....................................................................................... 20
8. Surcharge des méthodes .................................................................................................. 21
9. Passage d’arguments et retour de valeurs ....................................................................... 21
10. Exercices pra,ques ......................................................................................................... 22
À retenir ......................................................................................................................... 23
Chapitre 4 – Héritage, Polymorphisme, Classes Abstraites et Interfaces ................................ 24
Page 1 sur 64
1. Introduc,on ...................................................................................................................... 24
2. L’héritage en Java ............................................................................................................. 24
3. La redéfini,on de méthodes (override) ........................................................................... 25
4. U,lisa,on du mot-clé super ............................................................................................. 26
5. La hiérarchie de classes .................................................................................................... 27
6. Le polymorphisme ............................................................................................................ 27
7. Classes abstraites.............................................................................................................. 28
8. Les interfaces .................................................................................................................... 29
9. Différence entre classe abstraite et interface .................................................................. 30
10. Exercices pra,ques ......................................................................................................... 30
À retenir ......................................................................................................................... 31
Chapitre 5 – Ges,on des excep,ons et flux d’entrée/sor,e .................................................... 32
1. Introduc,on ...................................................................................................................... 32
2. Structure d’une excep,on ................................................................................................ 32
3. Ges,on des excep,ons : try – catch – finally ................................................................... 32
4. Plusieurs blocs catch......................................................................................................... 33
5. Lancer une excep,on ....................................................................................................... 34
6. Créer ses propres excep,ons ........................................................................................... 35
7. Les flux d’entrée/sor,e (I/O Streams) .............................................................................. 35
8. Lecture et écriture de fichiers texte ................................................................................. 36
9. Lecture et écriture avec BufferedReader et BufferedWriter ............................................ 37
10. Ges,on automa,que des ressources (try-with-resources) ............................................ 38
11. Sérialisa,on d’objets ...................................................................................................... 38
12. Exercices pra,ques ......................................................................................................... 39
À retenir ......................................................................................................................... 40
Chapitre 6 – Les classes usuelles de Java ................................................................................. 41
1. Introduc,on ...................................................................................................................... 41
2. Le package [Link] ......................................................................................................... 41
3. Le package java.u,l........................................................................................................... 42
4. Le package [Link].......................................................................................................... 45
5. Résumé des classes usuelles ............................................................................................ 46
6. Exercices pra,ques ........................................................................................................... 46
Page 2 sur 64
À retenir ......................................................................................................................... 47
Chapitre 7 – Paquetages et Déploiement ................................................................................ 48
1. Introduc,on ...................................................................................................................... 48
2. Défini,on d’un paquetage ................................................................................................ 48
3. Importa,on des classes d’un paquetage.......................................................................... 49
4. Les paquetages standards de Java.................................................................................... 49
5. Bonnes pra,ques de nommage........................................................................................ 50
6. Exemple complet de projet structuré............................................................................... 50
7. Compila,on et exécu,on avec les paquetages ................................................................ 52
8. Le déploiement en Java .................................................................................................... 52
9. Fichier manifeste ([Link]) .................................................................................... 52
10. Ou,ls de développement (IDE) ...................................................................................... 53
11. Exercices pra,ques ......................................................................................................... 53
À retenir ......................................................................................................................... 54
Mini-projet Java : Ges,on d’Étudiants ..................................................................................... 55
1. Objec,f du projet ............................................................................................................. 55
2. Structure du projet ........................................................................................................... 55
3. Le package model ............................................................................................................. 55
4. Le package service ............................................................................................................ 57
5. Le package u,l .................................................................................................................. 59
6. Le package main ............................................................................................................... 60
7. Fonc,onnalités démontrées............................................................................................. 63
8. Exercices complémentaires .............................................................................................. 63
Ce mini-projet rassemble toutes les no,ons vues : ...................................................... 64
Page 3 sur 64
Chapitre 1 – No ons de base de Java
1. Introduc on au langage Java
Java est un langage de programma on orienté objet, créé par James Gosling en 1995 chez
Sun Microsystems (racheté ensuite par Oracle).
C’est un langage portable, sécurisé et indépendant de la plateforme, ce qui signifie qu’un
même programme Java peut fonc,onner sur Windows, Mac, Linux, ou même sur un
smartphone Android sans modifica,on du code source.
• Développement Android
Schéma simplifié :
Avantages de la JVM
Page 4 sur 64
3. Structure d’un programme Java
Un programme Java con,ent toujours une classe principale qui possède une méthode
main().
Exemple simple :
Explica on :
javac [Link]
java Bonjour
Une variable est une zone mémoire qui stocke une donnée.
Chaque variable doit être déclarée avec un type.
Exemple :
Constantes
Page 5 sur 64
Une constante est une variable dont la valeur ne peut pas changer.
On la déclare avec le mot-clé final.
5. Opérateurs et expressions
Opérateurs arithmé ques
int a = 10, b = 3;
[Link](a + b); // 13
[Link](a / b); // 3
[Link](a % b); // 1
Opérateurs de comparaison
int x = 5;
Opérateurs logiques
Page 6 sur 64
boolean adulte = (age >= 18) && (age < 65);
Opérateurs d’affecta on
int c = 5;
c += 3; // équivaut à c = c + 3
[Link]("Bonjour ");
Lecture au clavier
Pour lire une donnée saisie par l’u,lisateur, on u,lise la classe Scanner.
import java.u,[Link];
Page 7 sur 64
Somme de deux nombres
Demandez à l’u,lisateur deux en,ers et affichez leur somme.
Exemple a endu :
La somme est : 13
Conversion de température
Demandez une température en Celsius et affichez son équivalent en Fahrenheit.
(Formule : F = C * 9/5 + 32)
Mini-calculatrice
Demandez à l’u,lisateur deux nombres et une opéra,on (+, -, *, /) puis affichez le résultat.
À retenir
• Java est un langage portable grâce à la JVM.
• Chaque programme Java commence par une classe contenant une méthode main().
Page 8 sur 64
Chapitre 2 – Les instruc ons de contrôle
1. Introduc on
Dans un programme, il est souvent nécessaire de prendre des décisions ou de répéter
certaines ac ons selon des condi,ons.
Les instruc ons de contrôle perme@ent de diriger le flux d’exécu,on du programme :
Elle permet d’exécuter un bloc de code seulement si une condi,on est vraie.
L’instruc on if...else
} else {
Page 9 sur 64
if (note >= 16) {
[Link]("Très bien");
[Link]("Assez bien");
[Link]("Passable");
} else {
[Link]("Ajourné");
L’opérateur ternaire
C’est une forme abrégée du if...else pour affecter une valeur selon une condi,on.
3. L’instruc on switch
Elle est u,lisée lorsque plusieurs condi,ons portent sur une même variable.
Elle rend le code plus lisible que plusieurs if...else.
int jour = 3;
switch (jour) {
case 1:
[Link]("Lundi");
break;
case 2:
[Link]("Mardi");
break;
Page 10 sur 64
case 3:
[Link]("Mercredi");
break;
default:
[Link]("Jour inconnu");
Remarque :
L’instruc,on break est essen,elle pour empêcher l’exécu on des cas suivants.
Le mot-clé default sert de cas par défaut si aucune condi,on ne correspond.
La boucle while
int compteur = 1;
compteur++;
La boucle do...while
Elle s’exécute au moins une fois, même si la condi,on est fausse dès le départ.
int nombre = 1;
do {
Page 11 sur 64
[Link]("Nombre = " + nombre);
nombre++;
La boucle for
Structure générale :
for (ini,alisa,on; condi,on; incrémenta,on) { ... }
Boucle for-each
[Link](f);
if (i == 5) break;
[Link](i);
La boucle s’arrête à 4.
Page 12 sur 64
con nue
if (i == 3) con,nue;
[Link](i);
return
if (x < 0) {
return;
int x = i * 2;
[Link](x);
Une variable locale n’est pas connue à l’extérieur du bloc où elle a été déclarée.
Page 13 sur 64
7. Exercices pra ques
Vérifier la majorité
Demandez à l’u,lisateur son âge et affichez s’il est majeur ou mineur.
Calcul de la note
Demandez une note et affichez l’apprécia,on :
• 14–15 : Bien
• 10–11 : Passable
• < 10 : Ajourné
Exemple a endu :
5x1=5
5 x 2 = 10
...
Compteur d’occurrences
Créez un tableau de chaînes de caractères et comptez combien de fois un mot précis
apparaît.
1 - Addi,on
2 - Soustrac,on
Page 14 sur 64
3 - Mul,plica,on
4 - Division
0 - Qui@er
À retenir
• Les condi ons (if, switch) perme@ent de faire des choix.
Page 15 sur 64
Chapitre 3 – Classes et Objets
1. Introduc on
Dans la programma,on orientée objet, un programme est vu comme un ensemble d’objets
qui interagissent entre eux.
Chaque objet possède :
Une classe est le modèle à par,r duquel les objets sont créés, un peu comme un plan
d’architecte pour construire plusieurs maisons similaires.
// A@ributs
String marque;
int vitesse;
// Méthode
void demarrer() {
[Link] = "Toyota";
[Link] = 120;
Page 16 sur 64
[Link]();
String nom;
int age;
double moyenne;
Chaque objet créé à par,r de ce@e classe aura ses propres valeurs pour ces a@ributs.
4. Les méthodes
Les méthodes définissent les ac ons qu’un objet peut effectuer.
String nom;
int age;
double moyenne;
void afficherInfos() {
Page 17 sur 64
5. Les constructeurs
Un constructeur est une méthode spéciale u,lisée pour ini aliser les objets lors de leur
créa,on.
Il porte le même nom que la classe et n’a pas de type de retour.
Exemple :
String nom;
int age;
// Constructeur
nom = n;
age = a;
void afficher() {
U lisa on :
e1.afficher();
Il est possible de définir plusieurs constructeurs dans une même classe : c’est la
surcharge de constructeurs.
Page 18 sur 64
6. Encapsula on et visibilité
Encapsula on
L’encapsula,on consiste à protéger les données d’un objet contre les modifica,ons
extérieures non souhaitées.
On rend les a@ributs privés et on fournit des méthodes d’accès (ge ers et se ers).
Exemple :
solde += montant;
return solde;
U lisa on :
[Link](1000);
Page 19 sur 64
[Link],rer(300);
Modificateurs d’accès
private
protected
public
Exemple :
return n * n;
return a + b;
return a + b;
return a + b;
Page 21 sur 64
int s = [Link](4, 7);
Classe Rectangle
Créer une classe Rectangle avec longueur et largeur.
Ajoutez une méthode aire() et une méthode perimetre().
Testez-la avec plusieurs objets.
Compte Bancaire
Créer une classe Compte avec :
Surcharge
Créer une classe Calcul avec deux méthodes addi,on :
Sta que
Créer une classe Conversion avec une méthode sta,que celsiusVersFahrenheit(double c)
Affichez la conversion d’une valeur donnée.
Page 22 sur 64
À retenir
• Une classe est un modèle d’objet.
Page 23 sur 64
Chapitre 4 – Héritage, Polymorphisme, Classes
Abstraites et Interfaces
1. Introduc on
L’un des grands avantages de la programma,on orientée objet est la possibilité de réu liser
le code existant et de le faire évoluer sans tout recommencer.
C’est ce qu’apporte le mécanisme d’héritage.
En Java, une classe peut hériter des propriétés et des comportements d’une autre classe
pour en créer une version plus spécialisée.
2. L’héritage en Java
Défini on
L’héritage est le mécanisme qui permet à une classe fille (ou sous-classe) de récupérer les
a@ributs et méthodes d’une classe mère (ou superclasse).
On u,lise le mot-clé extends pour définir une rela,on d’héritage.
Exemple :
// Classe mère
void parler() {
// Classe fille
void aboyer() {
Page 24 sur 64
// Programme principal
Exemple :
void parler() {
[Link]("L’animal s’exprime...");
@Override
void parler() {
Page 25 sur 64
4. U lisa on du mot-clé super
Le mot-clé super fait référence à la classe parente.
@Override
void parler() {
String nom;
[Link] = nom;
Page 26 sur 64
5. La hiérarchie de classes
Java permet de créer une chaîne d’héritage, mais une seule superclasse par classe (héritage
simple).
Animal
Chien
ChienDeGarde
Java ne supporte pas l’héritage mul,ple de classes, mais il le compense avec les
interfaces (voir plus bas).
6. Le polymorphisme
Défini on
Le polymorphisme permet à une variable de référencer des objets de différents types liés
par héritage.
Exemple :
Même si la variable a est de type Animal, c’est la version spécifique de Chien qui est
exécutée.
C’est ce qu’on appelle le polymorphisme dynamique (liage tardif).
Avantage du polymorphisme
[Link]();
Ce@e méthode peut accepter un Chien, un Chat ou n’importe quel autre Animal sans
modifica,on.
Page 27 sur 64
7. Classes abstraites
Défini on
Une classe abstraite est une classe incomplète qui ne peut pas être instanciée.
Elle sert de modèle commun à plusieurs classes filles.
Exemple :
void afficher() {
double rayon;
Cercle(double r) { rayon = r; }
@Override
double aire() {
U lisa on :
Page 28 sur 64
public sta,c void main(String[] args) {
f.afficher();
On ne peut pas faire : Forme f = new Forme(); car Forme est abstraite.
8. Les interfaces
Défini on
Une interface définit un contrat : un ensemble de méthodes que les classes doivent
implémenter.
Toutes les méthodes d’une interface sont abstraites par défaut.
Exemple :
interface Volant {
void voler();
U lisa on :
[Link]();
Page 29 sur 64
}
Modèle commun
U,lisa,on principale Contrat de comportement
par,ellement implémenté
Redéfini on de méthode
Créez une classe Animal avec une méthode parler().
Faites hériter Chat et Chien d’Animal et redéfinissez parler() dans chaque sous-classe.
Classe abstraite
Créez une classe abstraite Forme avec une méthode abstraite aire().
Implémentez Rectangle et Cercle et affichez leur aire respec,ve.
Page 30 sur 64
Interface
Créez une interface Deplacable avec une méthode seDeplacer().
Faites l’implémenter par Voiture et Avion et testez leurs comportements.
Polymorphisme
Créez une méthode afficherAire(Forme f) qui reçoit n’importe quelle forme (Cercle,
Rectangle, Triangle) et affiche son aire sans savoir sa nature exacte.
À retenir
• extends = héritage de classes
Page 31 sur 64
Chapitre 5 – Ges on des excep ons et flux
d’entrée/sor e
1. Introduc on
Lorsqu’un programme Java s’exécute, il peut rencontrer des situa,ons anormales :
Java dispose d’un système puissant de ges on des excep ons perme@ant de détecter,
traiter et prévenir ces erreurs.
Throwable
try {
} catch (TypeExcep,on e) {
Page 32 sur 64
// Traitement de l’excep,on
} finally {
Exemple :
try {
int a = 10, b = 0;
} catch (Arithme,cExcep,on e) {
} finally {
try {
} catch (Arithme,cExcep,on e) {
} catch (ArrayIndexOutOfBoundsExcep,on e) {
Page 33 sur 64
[Link]("Indice du tableau invalide !");
} catch (Excep,on e) {
L’ordre des catch est important : toujours placer le plus général (Excep,on) en dernier.
solde -= montant;
try {
[Link],rer(1500);
} catch (Excep,on e) {
[Link]([Link]());
Page 34 sur 64
6. Créer ses propres excep ons
On peut définir des excep ons personnalisées en héritant de Excep,on.
super(message);
U,lisa,on :
solde -= montant;
Types de flux :
Page 35 sur 64
8. Lecture et écriture de fichiers texte
Écriture dans un fichier (FileWriter)
import [Link];
import [Link],on;
try {
[Link]();
} catch (IOExcep,on e) {
import [Link];
import [Link],on;
try {
int caractere;
Page 36 sur 64
[Link]((char) caractere);
[Link]();
} catch (IOExcep,on e) {
import [Link].*;
try {
[Link]();
String ligne;
[Link](ligne);
[Link]();
} catch (IOExcep,on e) {
[Link]();
Page 37 sur 64
}
import [Link].*;
} catch (IOExcep,on e) {
[Link]();
Exemple :
import [Link].*;
String nom;
int age;
Page 38 sur 64
public Etudiant(String nom, int age) {
[Link] = nom;
[Link] = age;
[Link](e);
[Link]();
Fichier texte
Créez un fichier [Link] contenant trois prénoms, puis lisez et affichez-les ligne par ligne.
Copie de fichier
Écrivez un programme qui lit un fichier et en écrit une copie dans un autre fichier.
Page 39 sur 64
Sérialisa on
Créez une classe Employe (nom, salaire) et sauvegardez un objet Employe dans un fichier
binaire.
Excep on personnalisée
Créez une excep,on AgeInvalideExcep,on levée si l’u,lisateur entre un âge néga,f.
À retenir
• Les excep,ons perme@ent de rendre les programmes plus sûrs.
Page 40 sur 64
Chapitre 6 – Les classes usuelles de Java
1. Introduc on
Java met à disposi,on un ensemble très riche de classes prêtes à l’emploi regroupées dans
des bibliothèques (packages).
Les plus u,lisées sont :
• java.u l → structures de données et ou,ls divers (List, Map, Scanner, Date, etc.)
Ce chapitre présente les classes les plus importantes pour rendre ton code plus efficace, plus
clair et plus moderne.
2. Le package [Link]
Ce package est importé automa quement dans tous les programmes Java.
Il con,ent les classes fondamentales : String, Math, Object, System, Integer, etc.
La classe String
Une chaîne de caractères (String) est un objet immuable : son contenu ne peut pas être
modifié après sa créa,on.
[Link]([Link]()); // JAVA
[Link]([Link]()); // 4
[Link]([Link](1)); // a
[Link]([Link]("java")); // false
[Link](sb);
La classe Math
Page 41 sur 64
La classe Math fournit des méthodes sta ques pour les calculs mathéma,ques :
La classe System
[Link]("Bonjour !");
3. Le package java.u l
Ce package con,ent des classes très puissantes pour manipuler :
La classe Scanner
import java.u,[Link];
Page 42 sur 64
}
Une ArrayList est une liste dynamique qui peut grandir ou rétrécir.
import java.u,[Link];
[Link]("Pomme");
[Link]("Mangue");
[Link]("Orange");
[Link](f);
[Link]("Mangue");
[Link]([Link](0)); // Pomme
import java.u,[Link];
Page 43 sur 64
public sta,c void main(String[] args) {
[Link](1);
[Link](2);
[Link](2);
[Link](nombres); // [1, 2]
import java.u,[Link];
[Link]("Alice", 15);
[Link]("Bob", 12);
[Link]([Link]("Alice")); // 15
La classe Random
import java.u,[Link];
Page 44 sur 64
Random r = new Random();
import java.u,[Link];
import java.u,[Link];
Calendar c = [Link]();
4. Le package [Link]
Ce package permet de formater et analyser des chaînes, nombres et dates.
La classe DecimalFormat
import [Link];
Page 45 sur 64
double n = 12.3456;
[Link]([Link](n)); // 12.35
La classe SimpleDateFormat
import [Link];
import java.u,[Link];
• affichez sa longueur,
• me@ez-la en majuscules,
Liste d’étudiants
Créez une ArrayList contenant des noms d’étudiants.
Ajoutez-en, supprimez-en un, puis affichez la liste finale.
Page 46 sur 64
Annuaire téléphonique
U,lisez un HashMap<String, String> pour stocker des paires (Nom → Numéro).
Ajoutez trois contacts et affichez-les.
Formatage de nombres
Affichez la valeur de π ([Link]) arrondie à 3 décimales.
Date et heure
Affichez la date du jour formatée ainsi :
"Nous sommes le lundi 06 octobre 2025 à 10:30:15"
À retenir
• [Link] con,ent les classes fondamentales du langage.
Page 47 sur 64
Chapitre 7 – Paquetages et Déploiement
1. Introduc on
Au fur et à mesure qu’un projet Java grandit, le nombre de classes augmente rapidement.
Pour éviter le désordre et les conflits de noms, Java propose les paquetages (packages) :
→ ce sont des espaces logiques qui perme@ent de regrouper les classes par thème ou par
fonc onnalité.
Exemple :
package [Link];
Structure du projet :
src/
└── com/
└── jahaClinique/
└── vehicules/
└── [Link]
Page 48 sur 64
3. Importa on des classes d’un paquetage
Si tu veux u,liser une classe d’un autre package, tu dois l’importer.
Exemple :
package [Link];
import [Link];
[Link]();
import [Link].*;
* signifie “toutes les classes du paquetage”, mais pas celles des sous-packages.
Page 49 sur 64
5. Bonnes pra ques de nommage
1. Toujours u,liser des noms de paquetages en minuscules.
o Exemple : [Link],onPa,ents
o ui → interface u,lisateur
src/
├── model/
│ └── [Link]
├── service/
│ └── Ges,[Link]
└── main/
└── Applica,[Link]
model/[Link]
package model;
Page 50 sur 64
public Etudiant(String nom, double moyenne) {
[Link] = nom;
[Link] = moyenne;
service/Ges [Link]
package service;
import [Link];
if (e != null) e.afficher();
main/Applica [Link]
package main;
import [Link];
import [Link],onEtudiant;
Page 51 sur 64
public sta,c void main(String[] args) {
[Link](e);
java [Link],on
8. Le déploiement en Java
Une fois ton projet prêt, tu peux le regrouper dans un fichier exécutable appelé JAR (Java
ARchive).
Exécu on du JAR :
Tu peux double-cliquer sur le fichier .jar pour l’exécuter s’il con,ent la bonne entrée
Main-Class.
Page 52 sur 64
Exemple :
Manifest-Version: 1.0
Main-Class: [Link],on
Tous ces ou,ls peuvent compiler, exécuter et générer des fichiers JAR
automa,quement.
Déploiement
Compile ton projet, crée un fichier .jar exécutable et teste-le avec java -jar.
Page 53 sur 64
Exercice bonus
Crée un projet de ges,on de bibliothèque avec :
• service : Ges,onBibliotheque
• main : Applica,on
Chaque classe doit avoir au moins une méthode significa,ve (ex. ajouterLivre(),
afficherAuteurs()).
À retenir
• Les packages structurent le code et évitent les conflits.
Page 54 sur 64
Mini-projet Java : Ges on d’Étudiants
1. Objec f du projet
L’objec,f est de concevoir une applica on console capable de :
2. Structure du projet
src/
├── model/
│ ├── [Link]
│ └── [Link]
├── service/
│ └── Ges,[Link]
├── u,l/
│ └── FichierU,[Link]
└── main/
└── Applica,[Link]
3. Le package model
[Link]
package model;
Page 55 sur 64
protected int age;
[Link] = nom;
[Link] = age;
[Link]
package model;
super(nom, age);
this.note1 = note1;
this.note2 = note2;
Page 56 sur 64
public double calculerMoyenne() {
@Override
@Override
String[] t = [Link](";");
[Link](t[2]), [Link](t[3]));
4. Le package service
Ges [Link]
package service;
import [Link];
import java.u,[Link];
Page 57 sur 64
public class Ges,onEtudiant {
[Link](e);
if ([Link]())
else
e.afficher();
if ([Link]().equalsIgnoreCase(nom))
return e;
return null;
Etudiant e = rechercher(nom);
if (e != null) {
[Link](e);
Page 58 sur 64
} else {
return liste;
5. Le package u l
FichierU [Link]
package u,l;
import [Link];
import [Link].*;
import java.u,[Link];
[Link]([Link]() + "\n");
} catch (IOExcep,on e) {
Page 59 sur 64
}
String ligne;
[Link]([Link](ligne));
} catch (IOExcep,on e) {
return liste;
6. Le package main
Applica [Link]
package main;
import [Link];
import [Link],onEtudiant;
import u,[Link],l;
import java.u,[Link];
Page 60 sur 64
Ges,onEtudiant ges,on = new Ges,onEtudiant();
int choix;
do {
[Link]("5. Sauvegarder");
[Link]("0. Qui@er");
choix = [Link]();
switch (choix) {
case 1:
[Link]("Nom : ");
[Link]("Âge : ");
[Link]("Note 1 : ");
double n1 = [Link]();
[Link]("Note 2 : ");
double n2 = [Link]();
Page 61 sur 64
break;
case 2:
ges,on.afficherTous();
break;
case 3:
Etudiant e = ges,[Link](rech);
if (e != null) e.afficher();
break;
case 4:
ges,[Link](del);
break;
case 5:
FichierU,[Link](ges,[Link](), "[Link]");
break;
case 6:
ges,[Link]().clear();
ges,[Link]().addAll(FichierU,[Link]("[Link]"));
break;
Page 62 sur 64
case 0:
break;
default:
8. Exercices complémentaires
Tri des étudiants
Ajoute une méthode dans Ges,onEtudiant pour trier les étudiants selon leur moyenne
(u,lise Collec,[Link] et un Comparator).
Page 63 sur 64
Ges on d’erreurs
Ajoute une vérifica,on pour éviter les notes néga,ves ou supérieures à 20.
• la manipula,on de fichiers,
• les collec,ons,
• et les packages.
Page 64 sur 64