CORRECTION EXAM JAVA
Soit les classes suivantes :
• Une classe Personne qui comporte trois champs privés, nom, prénom et date de naissance.
Cette classe comporte un constructeur pour permettre d'initialiser les données. Elle comporte également une
méthode polymorphe Afficher pour afficher les données de chaque personne.
• Une classe Employé qui dérive de la classe Personne, avec en plus un champ Salaire accompagné de sa
propriété, un constructeur et la redéfinition de la méthode Afficher.
• Une classe Chef qui dérive de la classe Employé, avec en plus un champ Service accompagné de sa propriété,
un constructeur et la redéfinition de la méthode Afficher.
• Une classe Directeur qui dérive de la classe Chef, avec en plus un champ Société accompagné de sa propriété,
un constructeur et la redéfinition de la méthode Afficher.
1. Écrire les classes Personne, Employé, Chef et Directeur.
Créez un programme de test qui comporte tableaux d'objets ArrayList de quatre personnes avec trois employés,
deux chefs et un directeur (8 références de la classe Personne dans lesquelles ranger 5 instances de la classe
Employé, 2 de la classe Chef et 1 de la classe Directeur).
Affichez l'ensemble des éléments des tableaux
Personne
Employe
Chef
Directeur
Main
import [Link];
Excercice Listes des produits
Une classe Product qui comporte les champs privés :
• code (entier)
• des (chaîne de caractères : désignation)
• type (entier : 1, 2 ou 3)
• qte (entier : quantité)
• price (réel : prix unitaire)
Cette classe comporte :
1. Un constructeur par défaut et un constructeur paramétré.
2. Une méthode saisie() qui permet de saisir les informations d’un produit au clavier.
3. Une méthode valoriser() qui retourne la valorisation du produit : qte * price.
4. Une méthode afficher() qui affiche toutes les informations du produit + sa valorisation.
• Écrire la classe Product avec tous les champs et méthodes demandés.
• Écrire un programme Main qui :
• Déclare un tableau de 4 produits.
• Saisit les 4 produits.
• Affiche les 4 produits.
• Calcule et affiche :
o la valorisation totale de tous les produits,
o la valorisation totale par type (Type 1, Type 2, Type 3).
Produit
Main
import [Link];
RESUME DE COURS
1) Tableau statique (Array) — “taille fixe”
Un tableau en Java a une taille fixe dès la création.
• Product[] products = new Product[4]; // taille fixe = 4
• Accès direct par index : products[i]
for (int i = 0; i < [Link]; i++) {
products[i].afficher();
}
Ou
for (Product p : products) {
[Link]();
}
2)Liste dynamique (ArrayList) — “taille variable”
ArrayList est une structure dynamique : elle grandit/réduit.
import [Link];
ArrayList<Product> list = new ArrayList<>();
• Ajouter : [Link](p)
• Lire : [Link](i)
• Modifier : [Link](i, newValue)
• Supprimer : [Link](i) ou [Link](obj)
• Taille : [Link]()
• Tester vide : [Link]()
Exemple :
Scanner sc = new Scanner([Link]);
ArrayList<Product> products = new ArrayList<>();
for (int i = 0; i < 4; i++) {
Product p = new Product();
[Link](sc);
[Link](p);
3) Tableau d’objets vs Liste d’objets
Tableau d’objets
Product[] t = new Product[4];
t[0] = new Product(...);
Liste d’objets
ArrayList<Product> t = new ArrayList<>();
[Link](new Product(...));
4) Parcourir une ArrayList
A) for classique (index)
for (int i = 0; i < [Link](); i++) {
Product p = [Link](i);
[Link]();
}
B) For each
for (Product p : products) {
[Link]();
}
C ) Iterator
Un Iterator permet de parcourir une collection élément par élément.
import [Link];
Iterator<Product> it = [Link]();
while ([Link]()) {
Product p = [Link]();
[Link]();
}
• hasNext() : est-ce qu’il reste un élément ?
• next() : retourne l’élément suivant (et avance)
5) Tableau 2D (2 dimensions) — “matrice”
Un tableau 2D = lignes + colonnes.
int[][] m = new int[3][4]; // 3 lignes, 4 colonnes
Accès : m[0][0] = 10; // ligne 0 colonne 0
Parcours :
for (int i = 0; i < [Link]; i++) { // lignes
for (int j = 0; j < m[i].length; j++) { // colonnes
[Link](m[i][j] + " ");
[Link]();
}
Exam 2024-2025
1. Classe Batiment
2. Classe Maison
3. Classe Immeuble
4. Classe TestBatiment (Main)
Exam Cours Initial
Produit
Main