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



