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:

Solution:

// 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:

Solution:

// 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:

Solution:

// 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:

Solution:

// 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:

Solution:

// 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!

QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *