Exercices corrigés Java – Programmation Orientée Objet | Partie 2
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:
Écrivez un programme Java pour créer une classe appelée « FeuDeCirculation » avec des attributs pour la couleur et la durée, et des méthodes pour changer la couleur et vérifier si le feu est rouge ou vert.
Diagrame de classe:
// Définir la classe FeuDeCirculation class FeuDeCirculation { // Déclarer une variable privée pour stocker la couleur du feu de // circulation private String couleur; // Déclarer une variable privée pour stocker la durée du feu en // secondes private int duree; // Constructeur pour la classe FeuDeCirculation public FeuDeCirculation(String couleur, int duree) { // Initialiser la couleur du feu de circulation this.couleur = couleur; // Initialiser la durée du feu de circulation this.duree = duree; } // Méthode pour changer la couleur du feu de circulation public void changerCouleur(String newColor) { // Mettre à jour la variable couleur avec la nouvelle couleur couleur = newColor; } // Méthode pour vérifier si le feu est rouge public boolean estRouge() { // Retourne true si la couleur est rouge, sinon retourne false return couleur.equals("Rouge"); } // Méthode pour vérifier si le feu est vert public boolean estVert() { // Retourne true si la couleur est verte, sinon retourne false return couleur.equals("Vert"); } // Méthode pour obtenir la durée du feu de circulation public int getDuree() { // Renvoyer la valeur de la durée return duree; } // Méthode pour définir la durée du feu de circulation public void setDuree(int duree) { // Mettre à jour la variable durée avec la nouvelle valeur this.duree = duree; } } // 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 nouvel objet FeuDeCirculation avec une couleur // initiale 'Rouge' et une durée de 30 secondes. FeuDeCirculation fc = new FeuDeCirculation("Rouge", 30); // Afficher si le feu est rouge System.out.println("Le feu est rouge: "+ fc.estRouge()); // Afficher si le feu est vert System.out.println("Le feu est vert: "+ fc.estVert()); // Changer la couleur du feu de circulation en 'Vert' fc.changerCouleur("Vert"); // Afficher si le feu de circulation est maintenant vert System.out.println("Le feu de circulation est maintenant vert: "+ fc.estVert()); // Afficher la durée du feu de circulation System.out.println("La durée du feu est: "+ fc.getDuree()); // Définir une nouvelle durée pour le feu de circulation à 15 // secondes fc.setDuree(15); // Afficher la durée actualisée du feu de circulation System.out.println("La durée du feu est maintenant: "+ fc.getDuree()); } }
Sortie:
Le feu est rouge: true Le feu est vert: false Le feu de circulation est maintenant vert: true La durée du feu est: 30 La durée du feu est maintenant: 15
Exercice 2:
Écrire un programme Java pour créer une classe appelée « Employee » avec un nom, un salaire, une date d’embauche et une méthode pour calculer les années de service.
Diagrame de classe:
// Importer la classe LocalDate du package java.time import java.time.LocalDate; // Importer la classe Period du package java.time import java.time.Period; // Définir la classe Employee class Employee { // Déclarer une variable privée pour stocker le nom de l'employé private String nom; // Déclarer une variable privée pour stocker le salaire de // l'employé private double salaire; // Déclarer une variable privée pour stocker la date d'embauche de // l'employé private LocalDate datEmbauche; // Constructeur pour la classe Employee public Employee(String nom, double salaire, LocalDate datEmbauche) { // Initialiser le nom de l'employé this.nom = nom; // Initialiser le salaire de l'employé this.salaire = salaire; // Initialiser la date d'embauche de l'employé this.datEmbauche = datEmbauche; } // Méthode pour récupérer le nom de l'employé public String getNom() { // Renvoyer le nom de l'employé return nom; } // Méthode pour définir le nom de l'employé public void setNom(String nom) { // Mettre à jour la variable nom avec la nouvelle valeur this.nom = nom; } // Méthode pour récupérer le salaire de l'employé public double getSalaire() { // Renvoyer le salaire de l'employé return salaire; } // Méthode pour définir le salaire de l'employé public void setSalaire(double salaire) { // Mettre à jour la variable salaire avec la nouvelle valeur this.salaire = salaire; } // Méthode pour récupérer la date d'embauche de l'employé public LocalDate getDatEmbauche() { // Renvoyer la date d'embauche de l'employé return datEmbauche; } // Méthode pour définir la date d'embauche de l'employé public void setDatEmbauche(LocalDate datEmbauche) { // Mettre à jour la variable datEmbauche avec la nouvelle valeur this.datEmbauche = datEmbauche; } // Méthode de calcul des années de service de l'employé public int calculerAnneeService() { // Calculer la période entre la date d'embauche et la date du // jour, et renvoyer le nombre d'années. return Period.between(datEmbauche, LocalDate.now()).getYears(); } // Méthode pour afficher les détails de l'employé public void afficherEmployee() { // Afficher le nom de l'employé System.out.println("\nNom: "+ nom); // Afficher le salaire de l'employé System.out.println("Salaire: "+ salaire); // Afficher la date d'embauche de l'employé System.out.println("Date d'embauche: "+ datEmbauche); } } // 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 nouvel objet Employee nommé emp1 Employee emp1 = new Employee("Alex Babtise", 80000, LocalDate.parse("2024-05-01")); // Créer un nouvel objet Employee nommé emp2 Employee emp2 = new Employee("Bob Kimo", 40000, LocalDate.parse("2022-03-01")); // Afficher les détails de l'employé 1 emp1.afficherEmployee(); // Afficher les années de service de l'employé 1 System.out.println("Années de service: "+ emp1.calculerAnneeService()); // Afficher les détails de l'employé 2 emp2.afficherEmployee(); // Afficher les années de service de l'employé 2 System.out.println("Années de service: "+ emp2.calculerAnneeService()); } }
Sortie:
Nom: Alex Babtise Salaire: 80000.0 Date d'embauche: 2024-05-01 Années de service: 0 Nom: Bob Kimo Salaire: 40000.0 Date d'embauche: 2022-03-01 Années de service: 2
Exercice 3:
Écrire un programme Java pour créer une classe appelée « Etudiant » avec un nom, une note et des cours, ainsi que des méthodes pour ajouter et supprimer des cours.
Diagrame de classe:
// Importer la classe ArrayList du Java Collections Framework import java.util.ArrayList; // Définir la classe Etudiant class Etudiant { // Déclarer une variable privée pour stocker le nom de l'étudiant private String nom; // Déclarer une variable privée pour stocker la note de l'étudiant private int note; // Déclarez un ArrayList privé pour stocker les cours de l'étudiant private ArrayList cours; // Constructeur pour la classe Etudiant public Etudiant(String nom, int note) { // Initialiser le nom de l'étudiant this.nom = nom; // Initialiser la note de l'étudiant this.note = note; // Initialiser la liste de cours ArrayList this.cours = new ArrayList(); } // Méthode pour récupérer le nom de l'étudiant public String getNom() { // Retourner le nom de l'étudiant return nom; } // Méthode pour récupérer la note de l'étudiant public int getNote() { // Retourner la note de l'étudiant return note; } // Méthode pour récupérer la liste de cours de l'étudiant public ArrayList getCours() { // Retourner la liste de cours ArrayList return cours; } // Méthode pour ajouter un cours à la liste des cours de l'étudiant public void ajouterCours(String c) { // Ajouter le cours donné à la liste des cours cours.add(c); } // Méthode pour supprimer un cours de la liste des cours de // l'étudiant public void supprimerCours(String c) { // Supprime le cours donné de la liste des cours cours.remove(c); } // Méthode pour afficher les détails de l'étudiant public void afficherEtudiant() { // Afficher le nom de l'étudiant System.out.println("Nom: " + nom); // Afficher la note de l'étudiant System.out.println("Note: " + 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 nouvel objet Etudiant nommé e1 Etudiant e1 = new Etudiant("Alex Babtise", 18); // Créer un nouvel objet Etudiant nommé e2 Etudiant e2 = new Etudiant("Bob Kimo", 16); // Afficher un en-tête pour les détails de l'étudiant System.out.println("Détails de l'étudiant:"); // Afficher les données de l'étudiant 1 e1.afficherEtudiant(); // Afficher les données de l'étudiant 2 e2.afficherEtudiant(); // Afficher un message indiquant que des cours sont ajoutés pour // l'étudiant 1 System.out.println("Ajouter des cours pour "+ e1.getNom()); e1.ajouterCours("Mathématiques"); e1.ajouterCours("Biologie"); e1.ajouterCours("Histoire"); // Afficher le nom de e1 et sa liste de cours System.out.println("Les cours de "+ e1.getNom() +" : "+ e1.getCours()); // Afficher un message indiquant que des cours sont ajoutés pour // l'étudiant 2 System.out.println("\nAjouter des cours pour "+ e2.getNom()); e2.ajouterCours("Anglais"); e2.ajouterCours("Géologie"); e2.ajouterCours("Physique"); // Afficher le nom de e2 et sa liste de cours System.out.println("Les cours de "+ e2.getNom() +" : "+ e2.getCours()); // Afficher un message indiquant que le cours 'Biologie' est // supprimé pour e1 System.out.println("\nSuppression du cours 'Biologie' pour "+ e1.getNom()); // Supprimer le cours 'Biologie' des cours de e1 e1.supprimerCours("Biologie"); // Affichez le nom de e1 et sa liste de cours mise à jour. System.out.println("Les cours de "+ e1.getNom() +" : "+ e1.getCours()); } }
Sortie:
Détails de l'étudiant: Nom: Alex Babtise Note: 18 Nom: Bob Kimo Note: 16 Ajouter des cours pour Alex Babtise Les cours de Alex Babtise : [Mathématiques, Biologie, Histoire] Ajouter des cours pour Bob Kimo Les cours de Bob Kimo : [Anglais, Géologie, Physique] Suppression du cours 'Biologie' pour Alex Babtise Les cours de Alex Babtise : [Mathématiques, Histoire]
Exercice 4:
Écrire un programme Java pour créer une classe appelée « Bibliotheque » avec une collection de livres et des méthodes pour ajouter et supprimer des livres.
Diagrame de classe:
// Importer la classe ArrayList du package java.util import java.util.ArrayList; // Définir la classe Livre class Livre { // Attribut privé pour stocker le titre du livre private String titre; // Attribut privé pour stocker l'auteur du livre private String auteur; // Constructeur pour initialiser les champs titre et auteur public Livre(String titre, String auteur) { // Attribuer le paramètre titre au champ titre this.titre = titre; // Attribuer le paramètre auteur au champ auteur this.auteur = auteur; } // Méthode pour récupérer le titre public String getTitre() { // Retourner la valeur du champ titre return titre; } // Méthode Setter pour le titre public void setTitre(String titre) { // Attribuer le paramètre titre au champ titre this.titre = titre; } // Méthode pour récupérer l'auteur public String getAuteur() { // Retourner la valeur du champ auteur return auteur; } // Méthode Setter pour l'auteur public void setAuteur(String auteur) { // Attribuer le paramètre auteur au champ auteur this.auteur = auteur; } } // Définir la classe Bibliotheque class Bibliotheque { // Attribut privé pour stocker une liste d'objets Livres private ArrayList<Livre> livres; // Constructeur pour initialiser la variable livres public Bibliotheque() { // Créer une nouvelle ArrayList pour contenir les objets Livre livres = new ArrayList<Livre>(); } // Méthode pour ajouter un livre à la liste des livres public void addLivre(Livre livre) { // Ajouter le livre spécifié à la liste des livres livres.add(livre); } // Méthode pour supprimer un livre de la liste des livres public void removeLivre(Livre livre) { // Supprimer le livre spécifié de la liste des livres livres.remove(livre); } // Méthode pour récupérer la liste des livres public ArrayList<Livre> getLivres() { // Retourner la liste des livres return livres; } } // 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 Bibliotheque Bibliotheque biblio = new Bibliotheque(); // Créer de nouveaux objets Livre avec le titre et l'auteur Livre livre1 = new Livre("Les Misérables", "Victor Hugo"); Livre livre2 = new Livre("Nana", "Émile Zola"); Livre livre3 = new Livre("Les fleurs du mal", "Baudelaire"); Livre livre4 = new Livre("Le Cid", "Corneille"); // Ajouter les livres à la biblio biblio.addLivre(livre1); biblio.addLivre(livre2); biblio.addLivre(livre3); biblio.addLivre(livre4); System.out.println("Livres dans la bibliothéque:"); // Parcourir la liste des livres de la biblio for (Livre livre : biblio.getLivres()) { // Afficher le titre et l'auteur de chaque livre System.out.println(livre.getTitre()+" par "+livre.getAuteur()); } // Supprimer un livre de la biblio biblio.removeLivre(livre2); System.out.println("\nLivres dans la biblio après suppression "+ livre2.getTitre() +":"); // Parcourir la liste mise à jour des livres dans la biblio for (Livre livre : biblio.getLivres()) { // Afficher le titre et l'auteur de chaque livre System.out.println(livre.getTitre()+" par "+livre.getAuteur()); } } }
Sortie:
Livres dans la bibliothéque: Les Misérables par Victor Hugo Nana par Émile Zola Les fleurs du mal par Baudelaire Le Cid par Corneille Livres dans la biblio après suppression Nana: Les Misérables par Victor Hugo Les fleurs du mal par Baudelaire Le Cid par Corneille
Exercice 5:
Écrire un programme Java pour créer une classe appelée « Avion » avec un numéro de vol, une destination et des attributs d’heure de départ, ainsi que des méthodes pour vérifier l’état et le retard du vol.
Diagrame de classe:
// Import the LocalTime class from the java.time package import java.time.LocalTime; // Définir la classe Avion class Avion { // Attribut privé pour stocker le numéro de vol private String numVol; // Attribut privé pour stocker la destination private String destination; // Attribut privé pour stocker l'heure de départ prévue private LocalTime heureDepart; // Attribut privé pour stocker le temps de retard en minutes private int tempsRetard; // Constructeur pour initialiser le numéro de vol, la destination // et l'heure de départ prévue public Avion(String numVol, String destination, LocalTime heureDepart) { // Attribuer le paramètre numVol au champ numVol this.numVol = numVol; // Attribuer le paramètre destination au champ destination this.destination = destination; // Attribuer le paramètre heureDepart au champ heureDepart this.heureDepart = heureDepart; // Initialiser le temps de retard à 0 this.tempsRetard = 0; } // Méthode pour obtenir le numéro de vol public String getNumVol() { // Retourner la valeur du champ numVol return numVol; } // Méthode pour définir le numéro de vol public void setNumVol(String numVol) { // Attribuer le paramètre numVol au champ numVol this.numVol = numVol; } // Méthode pour obtenir la destination public String getDestination() { // Retourner la valeur du champ destination return destination; } // Méthode pour définir la destination public void setDestination(String destination) { // Attribuer le paramètre destination au champ destination this.destination = destination; } // Méthode pour obtenir l'heure de départ public LocalTime getHeureDepart() { // Retourner la valeur du champ heureDepart return heureDepart; } // Méthode pour définir l'heure de départ public void setHeureDepart(LocalTime heureDepart) { // Attribuer le paramètre heureDepart au champ heureDepart this.heureDepart = heureDepart; } // Méthode pour obtenir le temps de retard public int getTempsRetard() { // Retourner la valeur du champ tempsRetard return tempsRetard; } // Méthode pour fixer un délai et mettre à jour l'heure de départ // prévue public void retarder(int minutes) { // Affecter le paramètre minutes au champ tempsRetard this.tempsRetard = minutes; // Mettre à jour l'heure de départ prévue en ajoutant le temps de // retard this.heureDepart = this.heureDepart.plusMinutes(minutes); } // Méthode pour vérifier le statut du vol public void checkStatutVol() { // Vérifier s'il n'y a pas de retard if (tempsRetard == 0) { // Afficher un message indiquant que le vol est à l'heure System.out.println("Le vol " + numVol + " est à l'heure."); } else { // Afficher un message indiquant que le vol est retardé System.out.println("Le vol " + numVol + " est retardé de " + tempsRetard + " minutes."); } } } // 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 nouvel objet Avion avec le numéro de vol 'ABC123', la // destination 'Paris' et l'heure de départ 11:30. Avion a1 = new Avion("ABC123", "Paris", LocalTime.of(11, 30)); // Créer un nouvel objet Avion avec le numéro de vol 'POM569', la // destination 'CasaBlanca' et l'heure de départ 15:00. Avion a2 = new Avion("POM569", "CasaBlanca", LocalTime.of(15, 0)); // Créer un nouvel objet Avion avec le numéro de vol 'UYT852', la // destination 'Bruxelles' et l'heure de départ 12:00. Avion a3 = new Avion("UYT852", "Bruxelles", LocalTime.of(12, 0)); // Afficher le statut initial du vol System.out.println("Statut du vol:"); // Vérifier et afficher l'état de a1 a1.checkStatutVol(); // Vérifier et afficher l'état de a2 a2.checkStatutVol(); // Vérifier et afficher l'état de a3 a3.checkStatutVol(); // Retarder a1 de 30 minutes a1.retarder(30); // Retarder a2 de 90 minutes a2.retarder(90); // Afficher l'état actuel du vol après les retards System.out.println("\nStatut actuel du vol:"); // Vérifier et afficher l'état de a1 a1.checkStatutVol(); // Vérifier et afficher l'état de a2 a2.checkStatutVol(); // Vérifier et afficher l'état de a3 a3.checkStatutVol(); } }
Sortie:
Statut du vol: Le vol ABC123 est à l'heure. Le vol POM569 est à l'heure. Le vol UYT852 est à l'heure. Statut actuel du vol: Le vol ABC123 est retardé de 30 minutes. Le vol POM569 est retardé de 90 minutes. Le vol UYT852 est à l'heure.
É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
- 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