Exercices corrigés Java – Programmation Orientée Objet | Partie 3
Avec des exercices corrigés en Java, vous pratiquerez divers concepts du langage de programmation Java. Vous commencerez par des exercices Java de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
Écrire un programme Java pour créer une classe appelée « Stock » avec une collection de produits et des méthodes pour ajouter et supprimer des produits, et pour vérifier si le stock est insuffisant.
Diagrame de classe:

// Importer la classe ArrayList du package java.util
import java.util.ArrayList;
// Définir la classe Produit
class Produit {
// Champ privé pour stocker le nom du produit
private String nom;
// Champ privé pour stocker la quantité du produit
private int quantite;
// Constructeur pour initialiser le nom et la quantité du produit
public Produit(String nom, int quantite) {
// Affecter le paramètre nom au champ nom
this.nom = nom;
// Affecter le paramètre quantite au champ quantite
this.quantite = quantite;
}
// Méthode pour obtenir le nom du produit
public String getNom() {
// Retourner la valeur du champ nom
return nom;
}
// Méthode pour définir le champ nom
public void setNom(String nom) {
// Affecter le paramètre nom au champ nom
this.nom = nom;
}
// Méthode pour obtenir la quantité du produit
public int getQuantite() {
// Retourner la valeur du champ quantite
return quantite;
}
// Méthode pour définir le champ quantite
public void setQuantite(int quantite) {
// Affecter le paramètre quantite au champ quantite
this.quantite = quantite;
}
}
// Définir la classe Stock
class Stock {
// Champ privé pour stocker une liste d'objets Produit
private ArrayList<Produit> produits;
// Constructeur pour initialiser le champ produits
public Stock() {
// Créer une nouvelle ArrayList pour stocker les objets Produit
produits = new ArrayList<Produit>();
}
// Méthode pour ajouter un produit à la liste des produits
public void addProduit(Produit produit) {
// Ajouter le produit spécifié à la liste des produits
produits.add(produit);
}
// Méthode pour supprimer un produit de la liste des produits
public void removeProduit(Produit produit) {
// Supprimer le produit spécifié de la liste des produits
produits.remove(produit);
}
// Méthode pour vérifier si les produits en stock sont insuffisants
public void checkStock() {
// Itérer dans la liste des produits
for (Produit p : produits) {
// Vérifier si la quantité du produit est inférieure ou égale à
// 100
if (p.getQuantite() <= 100) {
// Afficher un message indiquant que le produit est en
// rupture de stock
System.out.println(p.getNom() + " est en rupture de stock. La quantité actuelle: " + p.getQuantite());
}
}
}
}
// Définir la classe Main
public class Main {
// Définir la méthode main qui est le point d'entrée du programme
public static void main(String[] args) {
// Créer une nouvelle instance de la classe Stock
Stock stock = new Stock();
// Créer de nouveaux objets Produit avec nom et quantité
Produit p1 = new Produit("Souris", 300);
Produit p2 = new Produit("Clavier", 70);
Produit p3 = new Produit("Tablette", 40);
System.out.println("Ajouter trois produits en stock:");
stock.addProduit(p1);
stock.addProduit(p2);
stock.addProduit(p3);
System.out.println("\nVérifier la disponibilité des stocks:");
// Vérifier et afficher les produits dont le stock est
// insuffisant
stock.checkStock();
System.out.println("\nSupprimer la tablette du stock!");
// Supprimer le produit Tablette du stock
stock.removeProduit(p3);
System.out.println("\nVérifier à nouveau la disponibilité des stocks:");
// Vérifier et afficher les produits dont le stock est
// insuffisant
stock.checkStock();
}
}
Sortie:
Ajouter trois produits en stock: Vérifier la disponibilité des stocks: Clavier est en rupture de stock. La quantité actuelle: 70 Tablette est en rupture de stock. La quantité actuelle: 40 Supprimer la tablette du stock! Vérifier à nouveau la disponibilité des stocks: Clavier est en rupture de stock. La quantité actuelle: 70
Exercice 2:
Écrivez un programme Java pour créer une classe appelée « Ecole » avec des attributs pour les étudiants, les enseignants et les classes, et des méthodes pour ajouter et supprimer des étudiants et des enseignants, et pour créer des classes (cours).
Diagrame de classe:

// Importer la classe ArrayList du paquetage java.util
import java.util.ArrayList;
// Définir la classe Ecole
class Ecole {
// Champ privé pour stocker une liste d'objets étudiants
private ArrayList<Etudiant> etudiants;
// Champ privé pour stocker une liste d'objets enseignants
private ArrayList<Enseignant> enseignants;
// Champ privé pour stocker une liste d'objets SchoolClass
private ArrayList<Classe> classes;
// Constructeur pour initialiser les champs élèves, enseignants et
// classes
public Ecole() {
// Créer une nouvelle ArrayList pour stocker les objets Etudiant
this.etudiants = new ArrayList<Etudiant>();
// Créer une nouvelle ArrayList pour stocker les objets
// Enseignant
this.enseignants = new ArrayList<Enseignant>();
// Créer une nouvelle ArrayList pour stocker les objets Classe
this.classes = new ArrayList<Classe>();
}
// Méthode pour ajouter un étudiant à la liste des étudiants
public void addEtudiant(Etudiant student) {
// Ajouter l'étudiant spécifié à la liste des étudiants
etudiants.add(student);
}
// Méthode pour supprimer un étudiant de la liste des étudiants
public void removeEtudiant(Etudiant student) {
// Supprimer l'étudiant spécifié de la liste des étudiants
etudiants.remove(student);
}
// Méthode pour ajouter un enseignant à la liste des enseignants
public void addEnseignant(Enseignant teacher) {
// Ajouter l'enseignant spécifié à la liste des enseignants
enseignants.add(teacher);
}
// Méthode pour supprimer un enseignant de la liste des enseignants
public void removeEnseignant(Enseignant teacher) {
// Supprimer l'enseignant spécifié de la liste des enseignants
enseignants.remove(teacher);
}
// Méthode pour ajouter un classe à la liste des classes
public void addClasse(Classe schoolClass) {
// Ajouter le classe spécifié à la liste des classes
classes.add(schoolClass);
}
// Méthode pour supprimer un classe de la liste des classes
public void removeClasse(Classe schoolClass) {
// Supprimer le classe spécifié de la liste des classes
classes.remove(schoolClass);
}
// Méthode pour récupérer la liste des étudiants
public ArrayList<Etudiant> getEtudiants() {
// Retourner la liste des étudiants
return etudiants;
}
// Méthode pour récupérer la liste des enseignants
public ArrayList<Enseignant> getEnseignants() {
// Retourner la liste des enseignants
return enseignants;
}
// Méthode pour récupérer la liste des classes
public ArrayList<Classe> getClasses() {
// Retourner la liste des classes
return classes;
}
}
// Définir la classe Etudiant
class Etudiant {
// Champ privé pour stocker le nom de l'étudiant
private String nom;
// Champ privé pour stocker l'âge de l'étudiant
private int age;
// Constructeur pour initialiser le nom et l'âge de l'étudiant
public Etudiant(String nom, int age) {
// Affecter le paramètre nom au champ nom
this.nom = nom;
// Affecter le paramètre age au champ age
this.age = age;
}
// Méthode Getter pour le champ nom
public String getNon() {
// Retourner la valeur du champ nom
return nom;
}
// Méthode Setter pour le champ nom
public void setNon(String nom) {
// Affecter le paramètre nom au champ nom
this.nom = nom;
}
// Méthode Getter pour le champ age
public int getAge() {
// Retourner la valeur du champ age
return age;
}
// Méthode Setter pour le champ age
public void setAge(int age) {
// Affecter le paramètre age au champ age
this.age = age;
}
}
// Définir la classe Enseignant
class Enseignant {
// Champ privé pour stocker le nom de l'enseignant
private String nom;
// Champ privé pour stocker la matière de l'enseignant
private String matiere;
// Constructeur pour initialiser le nom et la matière de
// l'enseignant
public Enseignant(String nom, String matiere) {
// Affecter le paramètre nom au champ nom
this.nom = nom;
// Affecter le paramètre matiere au champ matiere
this.matiere = matiere;
}
// Méthode Getter pour le champ nom
public String getNom() {
// Retourner la valeur du champ nom
return nom;
}
// Méthode Setter pour le champ nom
public void setNom(String nom) {
// Affecter le paramètre nom au champ nom
this.nom = nom;
}
// Méthode Getter pour le champ matiere
public String getMatiere() {
// Retourner la valeur du champ matiere
return matiere;
}
// Méthode Setter pour le champ matiere
public void setMatiere(String matiere) {
// Affecter le paramètre matiere au champ matiere
this.matiere = matiere;
}
}
// Définir la classe Classe
class Classe {
// Champ privé pour stocker le nom de la classe
private String nomClasse;
// Champ privé pour stocker l'enseignant de la classe
private Enseignant enseignant;
// Champ privé pour stocker une liste d'objets Etudiant
private ArrayList<Etudiant> etudiants;
// Constructeur pour initialiser les champs nomClasse, enseignant
// et etudiants
public Classe(String nomClasse, Enseignant enseignant) {
// Affecter le paramètre nomClasse au champ nomClasse
this.nomClasse = nomClasse;
// Affecter le paramètre enseignant au champ enseignant
this.enseignant = enseignant;
// Créer une nouvelle ArrayList pour stocker les objets Etudiant
this.etudiants = new ArrayList<Etudiant>();
}
// Méthode Getter pour le champ nomClasse
public String getNomClasse() {
// Retourner la valeur du champ nomClasse
return nomClasse;
}
// Setter method for the nomClasse field
public void setNomClasse(String nomClasse) {
// Affecter le paramètre nomClasse au champ nomClasse
this.nomClasse = nomClasse;
}
// Méthode Getter pour le champ enseignant
public Enseignant getEnseignant() {
// Retourner la valeur du champ enseignant
return enseignant;
}
// Setter method for the enseignant field
public void setEnseignant(Enseignant enseignant) {
// Affecter le paramètre enseignant au champ enseignant
this.enseignant = enseignant;
}
// Méthode pour récupérer la liste des étudiants
public ArrayList<Etudiant> getEtudiants() {
// Retourner la liste des étudiants
return etudiants;
}
// Méthode pour ajouter un Etudiant à la liste des Etudiants
public void addEtudiant(Etudiant e) {
// Ajouter l'étudiant spécifié à la liste des étudiants
etudiants.add(e);
}
// Méthode pour supprimer un étudiant de la liste des étudiants
public void removeEtudiant(Etudiant e) {
// Supprimer l'étudiant spécifié de la liste etudiants
etudiants.remove(e);
}
}
// Définir la classe Main
public class Main {
// Définir la méthode main qui est le point d'entrée du programme
public static void main(String[] args) {
// Créer une nouvelle instance de la classe Ecole
Ecole ecole = new Ecole();
// Créer des objets Etudiant avec nom et age
Etudiant et1 = new Etudiant("Alex Babtise", 20);
Etudiant et2 = new Etudiant("Bob Firok", 25);
Etudiant et3 = new Etudiant("Emily Taylor", 22);
Etudiant et4 = new Etudiant("Ali Binani", 23);
// Ajouter les étudiants à l'école
ecole.addEtudiant(et1);
ecole.addEtudiant(et2);
ecole.addEtudiant(et3);
ecole.addEtudiant(et4);
// Créer de nouveaux objets Enseignant avec nom et matiere
Enseignant es1 = new Enseignant("Yohan Sinor", "Math");
Enseignant es2 = new Enseignant("Thomas Fiza", "Anglais");
Enseignant es3 = new Enseignant("Olivier Bibo", "Science");
// Ajouter les enseignants à l'école
ecole.addEnseignant(es1);
ecole.addEnseignant(es2);
ecole.addEnseignant(es3);
// Créer de nouveaux objets Classe avec nom de classe et
// enseignant
Classe classMath = new Classe("Mathematics", es1);
// Ajouter des étudiants à la classe de mathématiques
classMath.addEtudiant(et1);
classMath.addEtudiant(et2);
classMath.addEtudiant(et3);
classMath.addEtudiant(et4);
Classe classAnglais = new Classe("Anglais", es2);
// Ajouter des étudiants à la classe d'anglais
classAnglais.addEtudiant(et1);
classAnglais.addEtudiant(et2);
classAnglais.addEtudiant(et3);
Classe classScience = new Classe("Science", es3);
// Ajouter des étudiants à la classe de sciences
classScience.addEtudiant(et1);
classScience.addEtudiant(et2);
classScience.addEtudiant(et3);
classScience.addEtudiant(et4);
// Ajouter les classes à l'école
ecole.addClasse(classMath);
ecole.addClasse(classAnglais);
ecole.addClasse(classScience);
// Afficher des informations générales sur l'école
System.out.println("Informations sur l'école:");
System.out.println("Nombre d'étudiants: "+ ecole.getEtudiants().size());
System.out.println("Nombre d'enseignants: "+ ecole.getEnseignants().size());
System.out.println("Nombre de classes: "+ ecole.getClasses().size());
System.out.println();
// Afficher les informations sur les cours de mathématiques
System.out.println("Informations sur les cours de mathématiques:");
System.out.println("Nom de Class: "+ classMath.getNomClasse());
System.out.println("Enseignant: "+ classMath.getEnseignant().getNom());
System.out.println("Nombre d'étudiants: "+ classMath.getEtudiants().size());
System.out.println();
// Afficher les informations sur les cours d'anglais
System.out.println("Informations sur les cours d'anglais:");
System.out.println("Nom de Class: "+ classAnglais.getNomClasse());
System.out.println("Enseignant: "+ classAnglais.getEnseignant().getNom());
System.out.println("Nombre d'étudiants: "+ classAnglais.getEtudiants().size());
System.out.println();
// Afficher les informations sur les cours de sciences
System.out.println("Informations sur les cours de sciences:");
System.out.println("Nom de Class: "+ classScience.getNomClasse());
System.out.println("Enseignant: "+ classScience.getEnseignant().getNom());
System.out.println("Nombre d'étudiants: "+ classScience.getEtudiants().size());
System.out.println();
// Supprimer un élève, un enseignant et une classe de l'école
ecole.removeEtudiant(et1);
ecole.removeEnseignant(es2);
ecole.removeClasse(classMath);
// Afficher les informations mises à jour sur l'école après la
// suppression
System.out.println("Informations sur l'école après suppression d'un élève, d'un enseignant et d'une classe:");
System.out.println("Nombre d'étudiants: "+ ecole.getEtudiants().size());
System.out.println("Nombre d'enseignants: "+ ecole.getEnseignants().size());
System.out.println("Nombre de classes: "+ ecole.getClasses().size());
}
}
Sortie:
Informations sur l'école: Nombre d'étudiants: 4 Nombre d'enseignants: 3 Nombre de classes: 3 Informations sur les cours de mathématiques: Nom de Class: Mathematics Enseignant: Yohan Sinor Nombre d'étudiants: 4 Informations sur les cours d'anglais: Nom de Class: Anglais Enseignant: Thomas Fiza Nombre d'étudiants: 3 Informations sur les cours de sciences: Nom de Class: Science Enseignant: Olivier Bibo Nombre d'étudiants: 4 Informations sur l'école après suppression d'un élève, d'un enseignant et d'une classe: Nombre d'étudiants: 3 Nombre d'enseignants: 2 Nombre de classes: 2
Exercice 3:
Écrire un programme Java pour créer une classe appelée « BiblioMusicale » avec une collection de chansons et des méthodes pour ajouter et supprimer des chansons, et pour jouer une chanson au hasard.
Diagrame de classe:

// Importer la classe ArrayList du package Java utility
import java.util.ArrayList;
// Importer la classe Random du package Java utility
import java.util.Random;
// Définir la classe BiblioMusicale
class BiblioMusicale {
// Déclarer un champ privé pour stocker une liste de chansons
private ArrayList<Chanson> chansons;
// Constructeur pour initialiser la liste des chansons
public BiblioMusicale() {
// Créer une nouvelle ArrayList pour stocker les objets
// Chanson.
chansons = new ArrayList<Chanson>();
}
// Méthode pour ajouter une chanson à la bibliothèque
public void addChanson(Chanson song) {
// Ajouter la chanson fournie à la liste des chansons
chansons.add(song);
}
// Méthode pour supprimer une chanson de la bibliothèque
public void removeChanson(Chanson song) {
// Supprimer la chanson fournie de la liste des chansons
chansons.remove(song);
}
// Méthode pour obtenir la liste de toutes les chansons de la
// bibliothèque
public ArrayList<Chanson> getChanson() {
// Retourner la liste des chansons
return chansons;
}
// Méthode pour lire une chanson aléatoire de la bibliothèque
public void lireChansonAleatoire() {
// Récupérer le nombre de chansons dans la bibliothèque
int size = chansons.size();
// Vérifier si la bibliothèque est vide
if (size == 0) {
// Afficher un message s'il n'y a pas de chansons à lire
System.out.println("Il n'y a pas de chansons à lire.");
return; // Quitter la méthode
}
// Créer un nouvel objet Random pour générer un nombre
// aléatoire
Random rand = new Random();
// Générer un index aléatoire dans l'intervalle de la liste
// des chansons
int index = rand.nextInt(size);
// Afficher le titre et l'artiste de la chanson sélectionnée
// de manière aléatoire
System.out.println("Lire: "+ chansons.get(index).getTitre() +" par "+ chansons.get(index).getArtist());
}
}
// Définir la classe Chanson
class Chanson {
// Champs privés pour stocker le titre et l'artiste de la chanson
private String title;
private String artist;
// Constructeur pour initialiser les champs titre et artiste
public Chanson(String title, String artist) {
// Définir le champ titre avec le titre fourni
this.title = title;
// Définir le champ artist avec le artist fourni
this.artist = artist;
}
// Méthode Getter pour récupérer le titre de la chanson
public String getTitre() {
// Retourner la valeur du champ titre
return title;
}
// Méthode pour modifier le titre de la chanson
public void setTitre(String title) {
// Définir le champ titre avec le titre fourni
this.title = title;
}
// Méthode Getter pour récupérer l'artist de la chanson
public String getArtist() {
// Retourner la valeur du champ artist
return artist;
}
// Méthode pour modifier le nom de l'artiste de la chanson
public void setArtist(String artist) {
// Définir le champ artist avec le artist fourni
this.artist = artist;
}
}
// Définir la classe Main
public class Main {
// Définir la méthode main qui est le point d'entrée du programme
public static void main(String[] args) {
// Créer une nouvelle instance de la classe BiblioMusicale
BiblioMusicale biblio = new BiblioMusicale();
// Ajouter des chansons à la bibliothèque musicale
biblio.addChanson(new Chanson("Un clair de lune", "Jean Chérasse"));
biblio.addChanson(new Chanson("Cadet Rousselle", "André Hunebelle"));
biblio.addChanson(new Chanson("Help!", "Richard Lester"));
biblio.addChanson(new Chanson("Baisers volés", "François Truffaut"));
biblio.addChanson(new Chanson("Je t'aime", "Serge Gainsbourg"));
biblio.addChanson(new Chanson("Staying Alive", "Michel Blanc"));
// Afficher toutes les chansons de la bibliothèque musicale
System.out.println("Toutes les chansons:");
// Parcourir chaque chanson de la bibliothèque et afficher
// son titre et son artiste.
for (Chanson chanson : biblio.getChanson()) {
System.out.println(chanson.getTitre() + " par " + chanson.getArtist());
}
System.out.println("\nLecture d'une chanson aléatoire:");
// Lire et afficher trois fois une chanson choisie au hasard
// dans la bibliothèque.
biblio.lireChansonAleatoire();
System.out.println();
biblio.lireChansonAleatoire();
System.out.println();
biblio.lireChansonAleatoire();
}
}
Sortie:
Toutes les chansons: Un clair de lune par Jean Chérasse Cadet Rousselle par André Hunebelle Help! par Richard Lester Baisers volés par François Truffaut Je t'aime par Serge Gainsbourg Staying Alive par Michel Blanc Lecture d'une chanson aléatoire: Lire: Help! par Richard Lester Lire: Baisers volés par François Truffaut Lire: Help! par Richard Lester
Exercice 4:
Écrivez un programme Java pour créer une classe appelée 'Forme' avec des méthodes abstraites pour calculer la surface et le périmètre, et des sous-classes pour le 'Rectangle', le 'Cercle' et le 'Triangle'.
Diagrame de classe:

// Définir la classe Forme comme une classe abstraite
abstract class Forme {
// Méthode abstraite pour récupérer la surface de la forme
// Cette méthode doit être implémentée par toute sous-classe de
// Forme
public abstract double getSurface();
// Méthode abstraite permettant d'obtenir le périmètre de la
// forme
// Cette méthode doit être implémentée par toute sous-classe de
// Forme
public abstract double getPerimeter();
}
// Définir la classe Rectangle, qui hérite la classe Forme
class Rectangle extends Forme {
// Champs privés pour stocker la longueur et la largeur du
// rectangle
private double longueur;
private double largeur;
// Constructeur pour initialiser la longueur et la largeur du
// rectangle
public Rectangle(double longueur, double largeur) {
// Définir le champ longueur à la longueur fournie
this.longueur = longueur;
// Définir le champ largeur à la largeur fournie
this.largeur = largeur;
}
// Méthode pour calculer et renvoyer la surface du rectangle
public double getSurface() {
// Calculer la surface en multipliant la longueur et la
// largeur
return longueur * largeur;
}
// Méthode pour calculer et renvoyer le périmètre du rectangle
public double getPerimeter() {
// Calculer le périmètre à l'aide de la formule 2 * (longueur
// + largeur)
return 2 * (longueur + largeur);
}
}
// Définir la classe Cercle, qui hérite la classe Forme
class Cercle extends Forme {
// Champ privé pour stocker le rayon du cercle
private double rayon;
// Constructeur pour initialiser le rayon du cercle
public Cercle(double rayon) {
// Attribuer au champ rayon le rayon fourni
this.rayon = rayon;
}
// Méthode pour calculer et renvoyer la surface du cercle
public double getSurface() {
// Calculer la surface en utilisant la formule π * rayon^2
return Math.PI * rayon * rayon;
}
// Méthode de calcul du périmètre du cercle
public double getPerimeter() {
// Calculer le périmètre en utilisant la formule 2*π*rayon
return 2 * Math.PI * rayon;
}
}
// Définir la classe Triangle, qui hérite la classe Forme
class Triangle extends Forme {
// Champs privés pour stocker les côtés du triangle
private double c1;
private double c2;
private double c3;
// Constructeur pour initialiser les côtés du triangle
public Triangle(double c1, double c2, double c3) {
this.c1 = c1;
this.c2 = c2;
this.c3 = c3;
}
// Méthode pour calculer et renvoyer la surface du triangle
public double getSurface() {
// Calculer le semi-périmètre
double s = (c1 + c2 + c3) / 2;
// Calculer la surface à l'aide de la formule de Heron
return Math.sqrt(s * (s - c1) * (s - c2) * (s - c3));
}
// Méthode pour calculer et renvoyer le périmètre du triangle
public double getPerimeter() {
// Calculer le périmètre en additionnant les côtés
return c1 + c2 + c3;
}
}
// Définir la classe Main
public class Main {
// Définir la méthode main qui est le point d'entrée du programme
public static void main(String[] args) {
// Créer un rectangle de longueur 15 et de largeur 20
Forme rectangle = new Rectangle(15, 20);
// Créer un cercle de rayon 5
Forme circle = new Cercle(5);
// Créer un triangle dont les côtés sont 5, 7 et 9
Forme triangle = new Triangle(5, 7, 9);
System.out.println("\nSurface et périmètre de différentes formes:");
// Afficher les détails et calculs du rectangle
System.out.println("\nRectangle:");
System.out.println("Surface: "+ rectangle.getSurface());
System.out.println("Périmètre: "+ rectangle.getPerimeter());
// Afficher les détails et calculs du cercle
System.out.println("\nCercle:");
System.out.println("Surface: "+ circle.getSurface());
System.out.println("Périmètre: "+ circle.getPerimeter());
// Afficher les détails et calculs du triangle
System.out.println("\nTriangle:");
System.out.println("Surface: "+ triangle.getSurface());
System.out.println("Périmètre: "+ triangle.getPerimeter());
}
}
Sortie:
Surface et périmètre de différentes formes: Rectangle: Surface: 300.0 Périmètre: 70.0 Cercle: Surface: 78.53981633974483 Périmètre: 31.41592653589793 Triangle: Surface: 17.41228014936585 Périmètre: 21.0
Exercice 5:
Écrire un programme Java pour créer une classe appelée « Film » avec des attributs pour le titre, le directeur, les acteurs et les avis, et des méthodes pour ajouter et récupérer des avis.
Diagrame de classe:

// Importer les classes ArrayList et Arrays du package Java utility
import java.util.ArrayList;
import java.util.Arrays;
// Définir la classe Film
class Film {
// Champs privés pour stocker le titre, le directeur, les acteurs
// et les avis sur le film.
private String titre;
private String directeur;
private ArrayList<String> acteurs;
private ArrayList<Avis> avis;
// Constructeur pour initialiser le titre, le directeur et les
// acteurs du film
public Film(String titre, String directeur, ArrayList<String> acteurs) {
this.titre = titre;
this.directeur = directeur;
this.acteurs = acteurs;
this.avis = new ArrayList<Avis>();
}
// Méthode pour ajouter un avis sur le film
public void addAvis(Avis a) {
// Ajouter l'avis fourni à la liste des avis
this.avis.add(a);
}
// Méthode pour récupérer la liste de toutes les avis du film
public ArrayList<Avis> getAvis() {
// Renvoyer la liste des avis
return this.avis;
}
// Méthode pour récupérer le titre du film
public String getTitre() {
// Retourner la valeur du champ titre
return this.titre;
}
// Méthode pour récupérer le directeur du film
public String getDirecteur() {
// Retourner la valeur du champ directeur
return this.directeur;
}
// Méthode pour récupérer la liste des acteurs d'un film
public ArrayList<String> getActeurs() {
// Retourner la liste des acteurs
return this.acteurs;
}
}
// Définir la classe Avis
class Avis {
// Champs privés pour stocker le texte de l'avis, le nom de
// l'avis et la note.
private String textAvis;
private String nomAvis;
private double note;
// Constructeur pour initialiser le texte de l'avis, le nom de
// l'avis et la note.
public Avis(String textAvis, String nomAvis, double note) {
this.textAvis = textAvis;
this.nomAvis = nomAvis;
this.note = note;
}
// Méthode pour récupérer le texte de l'avis
public String getTextAvis() {
// Retourner la valeur du champ textAvis
return textAvis;
}
// Méthode pour récupérer le nom de l'avis
public String getNomAvis() {
// Retourner la valeur du champ nomAvis
return nomAvis;
}
// Méthode pour récupérer la note
public double getNote() {
// Retourner la valeur du champ note
return note;
}
}
// Définir la classe Main
public class Main {
// Définir la méthode main qui est le point d'entrée du programme
public static void main(String[] args) {
// Créer un objet film
Film f1 = new Film("La Roue", "Jean Servais",
new ArrayList(Arrays.asList("Pierre Pelletier", "Pierre Mondy")));
// Créer des objets d'avis
Avis avis1 = new Avis("Excellent film!", "Alex Babtise", 5.0);
Avis avis2 = new Avis("Fortement recommandé!", "Jean Zino", 4.5);
Avis avis3 = new Avis("Un film magnifique", "Bob Polib", 4.0);
// Ajouter un avis sur f1
f1.addAvis(avis1);
f1.addAvis(avis2);
f1.addAvis(avis3);
// Afficher tous les avis sur 'La Roue'
System.out.println("\nAvis pour '" + f1.getTitre() + "':");
for (Avis a : f1.getAvis()) {
System.out.println(a.getTextAvis() +" par "+ a.getNomAvis() +" - "+ a.getNote());
}
}
}
Sortie:
Avis pour 'La Roue': Excellent film! par Alex Babtise - 5.0 Fortement recommandé! par Jean Zino - 4.5 Un film magnifique par Bob Polib - 4.0
Éditeur de code Java: Testez votre code en ligne!
Exercices corrigés Java - Programmation Orientée Objet | Partie 2
Exercices corrigés Java - Programmation Orientée Objet | Partie 3
Exercices corrigés Java - Programmation Orientée Objet | Partie 4
Exercices corrigés Java - Programmation Orientée Objet | Partie 5
Exercices corrigés Java - Programmation Orientée Objet | Partie 6
Testez vos connaissances – QCM Java corrigé – Partie 1QCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
- Exercice Java Corrigé pour Débutant | Partie 1
- Exercice Java Corrigé pour Débutant | Partie 2
- Exercice Java Corrigé pour Débutant | Partie 3
- Exercice Java Corrigé pour Débutant | Partie 4
- Exercice Java Corrigé pour Débutant | Partie 5
- Exercice Java Corrigé pour Débutant | Partie 6
- Exercice Java Corrigé pour Débutant | Partie 7
- Exercice Java Corrigé pour Débutant | Partie 8
- Exercice Java Corrigé pour Débutant | Partie 9
- Exercice Java Corrigé pour Débutant | Partie 10
- Exercice Java Corrigé – Méthodes Récursives
- Exercice Java Corrigé sur les Collections – Arraylist – Partie 1
- Exercice Java Corrigé sur les Collections – Arraylist – Partie 2
- Exercice Java Corrigé sur les Collections – Arraylist – Partie 3
- Exercice Java Corrigé sur les Collections – Arraylist – Partie 4
- Exercice Java Corrigé sur les Collections – LinkedList – Partie 1
- Exercice Java Corrigé sur les Collections – LinkedList – Partie 2
- Exercice Java Corrigé sur les Collections – LinkedList – Partie 3
- Exercice Java Corrigé sur les Collections – HashSet
- Exercice Java Corrigé sur les Collections – TreeSet – Partie 1
- Exercice Java Corrigé sur les Collections – TreeSet – Partie 2
- Exercice Java Corrigé sur les Collections – PriorityQueue
- Exercice Java Corrigé sur les Collections – HashMap
- Exercice Java Corrigé sur les Collections – TreeMap
- Exercices corrigés Java POO – Constructeurs
- Exercices corrigés Java – Programmation Orientée Objet | Partie 1
- Exercices corrigés Java – Programmation Orientée Objet | Partie 2
- Exercices corrigés Java – Programmation Orientée Objet | Partie 3
- Exercices corrigés Java – Programmation Orientée Objet | Partie 4
- Exercices corrigés Java – Programmation Orientée Objet | Partie 5
- Exercices corrigés Java – Programmation Orientée Objet | Partie 6
- Exercice Java Corrigé sur POO – Polymorphism
- Exercice Java Corrigé – POO – Interfaces
- Exercice Java Corrigé – POO – Classe Abstraite
- Exercice Java Corrigé – POO – Classes Imbriquées
- Exercices corrigés Java les classes et l’héritage – Partie 1
- Exercices corrigés Java les classes et l’héritage – Partie 2
- Exercice Java Corrigé – Gestion Des Exceptions


