Exercices corrigés Java – Programmation Orientée Objet | Partie 1
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 « Personne » avec un nom et un attribut age. Créez deux instances de la classe « Personne », définissez leurs attributs à l’aide du constructeur et affichez leur nom et leur âge.
Exemple de sortie:
Alex Babtise a 25 ans. Emily Tonari a 18 ans.
Diagrame de classe:

// Définir la classe Personne
class Person {
// Déclarer une variable privée pour stocker le nom du personne
private String name;
// Déclarer une variable privée pour stocker l'age du personne
private int age;
// Constructeur de la classe Personne qui initialise
// les variables name et age
public Person(String name, int age) {
// Attribuer à la variable name la valeur du paramètre name
// fourni
this.name = name;
// Attribuer à la variable age la valeur du paramètre age
// fourni
this.age = age;
}
// Méthode pour récupérer le nom de la personne
public String getName() {
// Retourner la valeur de la variable name
return name;
}
// Méthode pour récupérer l'age de la personne
public int getAge() {
// Retourner la valeur de la variable age
return age;
}
// Méthode pour définir le nom de la personne
public void setName(String name) {
// Attribue à la variable name la valeur du paramètre name
// fourni
this.name = name;
}
// Méthode pour définir l'age de la personne
public void setAge(int age) {
// Attribuer à la variable age la valeur du paramètre age
// fourni
this.age = age;
}
}
// 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 instance de la classe Personne avec le nom 'Alex
// Babtise' et l'âge 25
Person p1 = new Person("Alex Babtise", 25);
// Créer une autre instance de la classe Personne avec le nom
// "Emily Tonari" et l'âge 18
Person p2 = new Person("Emily Tonari", 18);
// Afficher le nom et l'âge de p1 sur la console
System.out.println(p1.getName()+" a "+p1.getAge()+" ans.");
// Afficher le nom et l'âge de p2 sur la console
System.out.println(p2.getName()+" a "+p2.getAge()+" ans.\n");
// Modifier le nom et l'âge de p2 en utilisant les méthodes
// setter
p2.setName("Thomas Gozilla");
p2.setAge(30);
// Afficher le nom et l'âge actualisés de p2 sur la console
System.out.println(p2.getName()+" a "+p2.getAge()+" ans.\n");
}
}
Sortie:
Alex Babtise a 25 ans. Emily Tonari a 18 ans. Thomas Gozilla a 30 ans.
Explication:
Dans l’exemple ci-dessus, nous créons deux instances de la classe « Personne », nous définissons leurs attributs à l’aide du constructeur et nous affichons leur nom et leur âge à l’aide des méthodes getter. Nous modifions également les attributs à l’aide des méthodes setter et affichons les valeurs mises à jour.
Exercice 2:
Écrivez un programme Java pour créer une classe appelée « Chien » avec un nom et un attribut de race. Créez deux instances de la classe « Chien », définissez leurs attributs à l’aide du constructeur et modifiez les attributs à l’aide des méthodes setter, puis affichez les valeurs mises à jour.
Diagrame de classe:

// Définir la classe Chien
class Chien {
// Déclarer une variable privée pour stocker le nom du Chien
private String nom;
// Déclarer une variable privée pour stocker la race du Chien
private String race;
// Constructeur de la classe Chien qui initialise les variables
// nom et race
public Chien(String nom, String race) {
// Attribuer à la variable nom la valeur du paramètre nom
// fourni
this.nom = nom;
// Attribuer à la variable race la valeur du paramètre race
// fourni
this.race = race;
}
// Méthode pour récupérer le nom du Chien
public String getNom() {
// Retourner la valeur de la variable nom
return nom;
}
// Méthode pour définir le nom du Chien
public void setNom(String nom) {
// Attribuer à la variable nom la valeur du paramètre nom
// fourni
this.nom = nom;
}
// Méthode pour récupérer la race Chien
public String getRace() {
// Retourner la valeur de la variable race
return race;
}
// Méthode pour définir la race du Chien
public void setRace(String race) {
// Attribuer à la variable race la valeur du paramètre race
// fourni
this.race = race;
}
}
// 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 instance de la classe Chien avec le nom 'Rio' et
// la race 'Berger allemand'
Chien ch1 = new Chien("Rio", "Berger allemand");
// Créez une autre instance de la classe Chien avec le nom
// 'Rocky' et la race 'Husky'
Chien ch2 = new Chien("Rocky", "Husky");
// Afficher le nom et la race de ch1 sur la console
System.out.println(ch1.getNom()+" est un "+ch1.getRace());
// Afficher le nom et la race de ch2 sur la console
System.out.println(ch2.getNom()+" est un "+ch2.getRace());
// Afficher un message indiquant que la race de ch1 et le nom
// de ch2 vont être modifiés
System.out.println("\nDéfinir la nouvelle race de ch1 et le nouveau nom de ch2:");
// Changer la race du ch1 en "Beagle"
ch1.setRace("Beagle");
// Changer le nom de ch2 en "Simba"
ch2.setNom("Simba");
// Affichez sur la console le nom et la race mis à jour de
// ch1.
System.out.println(ch1.getNom()+" est un "+ch1.getRace());
// Affichez sur la console le nom et la race mis à jour de
// ch2.
System.out.println(ch2.getNom()+" est un "+ch2.getRace());
}
}
Sortie:
Rio est un Berger allemand Rocky est un Husky Définir la nouvelle race de ch1 et le nouveau nom de ch2: Rio est un Beagle Simba est un Husky
Exercice 3:
Écrire un programme Java pour créer une classe appelée « Livre » avec des attributs pour le titre, l’auteur et l’ISBN, et des méthodes pour ajouter et supprimer des livres d’une collection.
Diagrame de classe:

// Importer la classe ArrayList du package java.util
import java.util.ArrayList;
// Définir la classe Livre
class Livre {
// Déclarer une variable privée pour stocker le titre du livre
private String titre;
// Déclarer une variable privée pour stocker l'auteur du livre
private String auteur;
// Déclarer une variable privée pour stocker l'ISBN du livre
private String ISBN;
// Déclarez un ArrayList statique pour stocker la collection
// d'objets de Livre.
private static ArrayList<Livre> livres = new ArrayList<Livre>();
// Constructeur de la classe Livre qui initialise les variables
// titre, auteur et ISBN
public Livre(String titre, String auteur, String ISBN) {
// Attribue à la variable 'titre' la valeur du paramètre
// 'titre' fourni
this.titre = titre;
// Attribue à la variable 'auteur' la valeur du paramètre
// 'auteur' fourni
this.auteur = auteur;
// Attribue à la variable 'ISBN' la valeur du paramètre
// 'ISBN' fourni
this.ISBN = ISBN;
}
// Méthode pour récupérer le titre du livre
public String getTitre() {
// Renvoyer la valeur de la variable titre
return titre;
}
// Méthode pour définir le titre du livre
public void setTitre(String titre) {
// Attribue à la variable 'titre' la valeur du paramètre
// 'titre' fourni
this.titre = titre;
}
// Méthode pour récupérer l'auteur du livre
public String getAuteur() {
// Renvoyer la valeur de la variable auteur
return auteur;
}
// Méthode pour définir l'auteur du livre
public void setAuteur(String auteur) {
// Attribue à la variable 'auteur' la valeur du paramètre
// 'auteur' fourni
this.auteur = auteur;
}
// Méthode pour récupérer l'ISBN du livre
public String getISBN() {
// Renvoyer la valeur de la variable ISBN
return ISBN;
}
// Méthode pour définir l'ISBN du livre
public void setISBN(String ISBN) {
// Attribue à la variable 'ISBN' la valeur du paramètre
// 'ISBN' fourni
this.ISBN = ISBN;
}
// Méthode statique pour ajouter un livre à la collection de
// livres
public static void addLivre(Livre livre) {
// Ajouter l'objet livre fourni à la collection livres
livres.add(livre);
}
// Méthode statique pour supprimer un livre de la collection de
// livres
public static void removeLivre(Livre livre) {
// Supprime l'objet livre fourni de la collection livres
livres.remove(livre);
}
// Méthode statique pour récupérer toute la collection de livres
public static ArrayList<Livre> getLivres() {
// Retourner la liste de 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éez une instance de la classe Livre avec titre
// "L'Étranger", auteur "Albert Camus", et ISBN
// "6547165001881"
Livre livre1 = new Livre("L'Étranger", "Albert Camus", "6547165001881");
// Créez une autre instance de la classe Livre avec titre "Le
// père Goriot", auteur "Honoré de Balzac", et ISBN
// "661100321741"
Livre livre2 = new Livre("Le père Goriot", "Honoré de Balzac", "661100321741");
// Ajouter livre1 à la collection de livres
Livre.addLivre(livre1);
// Ajouter livre2 à la collection de livres
Livre.addLivre(livre2);
// Récupérer la collection de livres et la stocker dans une
// ArrayList nommée livres.
ArrayList<Livre> livres = Livre.getLivres();
// Afficher un en-tête pour la liste des livres
System.out.println("Liste des livres:");
// Parcourir chaque livre de la collection livres
for (Livre l : livres) {
// Affichez le titre, l'auteur et le numéro ISBN de
// chaque livre.
System.out.println(l.getTitre() + " par " + l.getAuteur() + ", ISBN: " + l.getISBN());
}
// Supprimer le livre 1 de la collection de livres
Livre.removeLivre(livre1);
// Afficher un message indiquant que le livre 1 a été
// supprimé
System.out.println("\nAprès suppression de " + livre1.getTitre() + ":");
// Afficher un en-tête pour la liste des livres mise à jour
System.out.println("Liste des livres mise à jour:");
// Parcourir chaque livre de la collection livres
for (Livre l : livres) {
// Affichez le titre, l'auteur et le numéro ISBN de
// chaque livre.
System.out.println(l.getTitre() + " par " + l.getAuteur() + ", ISBN: " + l.getISBN());
}
}
}
Sortie:
Liste des livres: L'Étranger par Albert Camus, ISBN: 6547165001881 Le père Goriot par Honoré de Balzac, ISBN: 661100321741 Après suppression de L'Étranger: Liste des livres mise à jour: Le père Goriot par Honoré de Balzac, ISBN: 661100321741
Exercice 4:
Écrire un programme Java pour créer une classe appelée « Employee » avec un nom, un poste et un salaire, ainsi que des méthodes pour calculer et mettre à jour le salaire.
Diagrame de classe:

// 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 poste de
// l'employé
private String poste;
// Déclarer une variable privée pour stocker le salaire de
// l'employé
private double salaire;
// Constructeur de la classe Employee qui initialise les
// variables nom, poste et salaire
public Employee(String nom, String poste, double salaire) {
// Attribue à la variable nom la valeur du paramètre nom
// fourni
this.nom = nom;
// Attribue à la variable poste la valeur du paramètre poste
// fourni
this.poste = poste;
// Attribue à la variable salaire la valeur du paramètre
// salaire fourni
this.salaire = salaire;
}
// Méthode pour récupérer le nom de l'employé
public String getNom() {
// Retourner la valeur de la variable nom
return nom;
}
// Méthode pour définir le nom de l'employé
public void setNom(String nom) {
// Attribue à la variable nom la valeur du paramètre nom
// fourni
this.nom = nom;
}
// Méthode pour récupérer le poste de l'employé
public String getPoste() {
// Retourner la valeur de la variable poste
return poste;
}
// Méthode pour définir le poste de l'employé
public void setPoste(String poste) {
// Attribue à la variable poste la valeur du paramètre poste
// fourni
this.poste = poste;
}
// Méthode pour récupérer le salaire de l'employé
public double getSalaire() {
// Retourner la valeur de la variable salaire
return salaire;
}
// Méthode pour définir le salaire de l'employé
public void setSalaire(double salaire) {
// Attribue à la variable salaire la valeur du paramètre
// salaire fourni
this.salaire = salaire;
}
// Méthode pour augmenter le salaire de l'employé d'un
// pourcentage donné
public void augSalaire(double pourcentage) {
// Calculer le nouveau salaire en augmentant le salaire
// actuel du pourcentage donné.
salaire = salaire + salaire * pourcentage / 100;
}
// Méthode pour afficher les détails de l'employé
public void afficherEmployee() {
// Afficher le nom de l'employé
System.out.println("Nom: " + nom);
// Afficher le poste de l'employé
System.out.println("Poste: " + poste);
// Afficher le salaire de l'employé
System.out.println("Salaire: " + salaire);
}
}
// 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 instance de la classe Employee
Employee e1 = new Employee("Alex Babtise", "Développeur", 80000);
// Créer une autre instance de la classe Employee
Employee e2 = new Employee("Emily Firoza", "Comptable", 70000);
System.out.println("\nDétails de l'employé:");
// Afficher les détails de e1
e1.afficherEmployee();
// Afficher les détails de e2
e2.afficherEmployee();
// Augmenter le salaire de e1 de 5%
e1.augSalaire(5);
// Augmenter le salaire de e2 de 10%
e2.augSalaire(10);
System.out.println("\nAprès l'augmentation des salaires:");
System.out.println("\n5% pour 'Alex Babtise':");
// Afficher les données mises à jour de e1
e1.afficherEmployee();
System.out.println("\n10% pour 'Emily Firoza':");
// Afficher les données mises à jour de e2
e2.afficherEmployee();
}
}
Sortie:
Détails de l'employé: Nom: Alex Babtise Poste: Développeur Salaire: 80000.0 Nom: Emily Firoza Poste: Comptable Salaire: 70000.0 Après l'augmentation des salaires: 5% pour 'Alex Babtise': Nom: Alex Babtise Poste: Développeur Salaire: 84000.0 10% pour 'Emily Firoza': Nom: Emily Firoza Poste: Comptable Salaire: 77000.0
Exercice 5:
Écrivez un programme Java pour créer une classe appelée « Banque » avec une collection de comptes et des méthodes pour ajouter et supprimer des comptes, et pour déposer et retirer de l’argent. Définissez également une classe appelée « Compte » pour gérer les détails du compte d’un client particulier.
Diagrame de classe:

// Importer la classe ArrayList du Java Collections Framework
import java.util.ArrayList;
// Définir la classe Compte
class Compte {
// Déclarer une variable privée pour stocker le nom du titulaire
// du compte
private String nom;
// Déclarer une variable privée pour stocker le numéro de compte
private String numCompte;
// Déclarer une variable privée pour stocker le solde du compte
private double solde;
// Constructeur de la classe Compte qui initialise les variables
// nom, numéro de compte et solde.
public Compte(String nom, String numCompte, double solde) {
// Attribue à la variable nom la valeur du paramètre nom
// fourni
this.nom = nom;
// Attribue à la variable numCompte la valeur du paramètre
// numCompte fourni
this.numCompte = numCompte;
// Attribue à la variable solde la valeur du paramètre solde
// fourni
this.solde = solde;
}
// Méthode pour récupérer le nom du titulaire du compte
public String getNom() {
// Retourner la valeur de la variable nom
return nom;
}
// Méthode pour définir le nom du titulaire du compte
public void setNom(String nom) {
// Attribue à la variable nom la valeur du paramètre nom
// fourni
this.nom = nom;
}
// Méthode pour récupérer le numéro de compte
public String getNumCompte() {
// Retourner la valeur de la variable numCompte
return numCompte;
}
// Méthode pour définir le numéro de compte
public void setNumCompte(String numCompte) {
// Attribue à la variable numCompte la valeur du paramètre
// numCompte fourni
this.numCompte = numCompte;
}
// Méthode pour récupérer le solde du compte
public double getSolde() {
// Retourner la valeur de la variable solde
return solde;
}
// Méthode pour définir le solde du compte
public void setSolde(double solde) {
// Attribue à la variable solde la valeur du paramètre solde
// fourni
this.solde = solde;
}
// Méthode de dépôt d'un montant sur le compte
public void deposer(double montant) {
// Augmenter le solde du montant spécifiée
solde += montant;
}
// Méthode de retrait d'un montant du compte
public void retirer(double montant) {
// Réduire le solde du montant spécifiée
solde -= montant;
}
// Méthode pour récupérer les informations sur le compte
public String getCompteInfo() {
// Renvoyer une chaîne contenant le nom, le numéro de compte
// et le solde
return "Nom: " + nom + ", Numéro de compte: " + numCompte + ", Solde: " + solde;
}
}
// Définir la classe Banque
class Banque {
// Déclarer une ArrayList pour stocker les comptes.
private ArrayList<Compte> comptes;
// Constructeur de la classe Banque
public Banque() {
// Initialiser la liste de comptes
comptes = new ArrayList<Compte>();
}
// Méthode pour ajouter un compte à la liste des comptes
public void addCompte(Compte compte) {
// Ajouter le compte donné à la liste de comptes(ArrayList)
comptes.add(compte);
}
// Méthode pour supprimer un compte de la liste des comptes
public void removeCompte(Compte compte) {
// Supprime le compte donné de la liste de comptes (ArrayList)
comptes.remove(compte);
}
// Méthode pour déposer de l'argent sur un compte spécifique
public void deposerArgent(Compte compte, double montant) {
// Appeler la méthode de dépôt sur le compte donné avec le
// montant spécifié
compte.deposer(montant);
}
// Méthode pour retirer de l'argent d'un compte spécifique
public void retirerArgent(Compte compte, double montant) {
// Appeler la méthode de retrait sur le compte donné avec le
// montant spécifié
compte.retirer(montant);
}
// Méthode pour obtenir la liste de tous les comptes
public ArrayList<Compte> getComptes() {
// Retourner la liste des comptes(ArrayList)
return comptes;
}
}
// 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 Banque
Banque b = new Banque();
// Créer trois nouveaux objets Compte avec les détails initiaux
Compte cpt1 = new Compte("Alex Babtise", "C101", 8000);
Compte cpt2 = new Compte("Ali Koris", "C102", 6500);
Compte cpt3 = new Compte("Bob Finor", "C103", 50000);
// Ajouter les trois comptes au Banque b
b.addCompte(cpt1);
b.addCompte(cpt2);
b.addCompte(cpt3);
// Récupérer la liste des comptes de la Banque b
ArrayList<Compte> comptes = b.getComptes();
// Parcourir chaque compte de la liste des comptes
for (Compte cpt: comptes) {
// Afficher les informations relatives à chaque compte
System.out.println(cpt.getCompteInfo());
}
// Afficher un message indiquant le début d'une opération de
// dépôt
System.out.println("\nAprès avoir déposé 500 dans cpt1:");
// Déposé 500 dans cpt1
b.deposerArgent(cpt1, 500);
// Affichez les informations de compte mises à jour pour cpt1
System.out.println(cpt1.getCompteInfo());
// Afficher un message indiquant qu'il n'y a pas de transaction
// pour cpt2
System.out.println("Pas de transaction dans cpt2:");
// Afficher les informations relatives à cpt2
System.out.println(cpt2.getCompteInfo());
// Afficher un message indiquant le début d'une opération de
// retrait.
System.out.println("Après avoir retiré 2000 de cpt3 :");
// Retiré 2000 de cpt3
b.retirerArgent(cpt3, 2000);
// Affichez les informations de compte mises à jour pour le cpt3
System.out.println(cpt3.getCompteInfo());
}
}
Sortie:
Nom: Alex Babtise, Numéro de compte: C101, Solde: 8000.0 Nom: Ali Koris, Numéro de compte: C102, Solde: 6500.0 Nom: Bob Finor, Numéro de compte: C103, Solde: 50000.0 Après avoir déposé 500 dans cpt1: Nom: Alex Babtise, Numéro de compte: C101, Solde: 8500.0 Pas de transaction dans cpt2: Nom: Ali Koris, Numéro de compte: C102, Solde: 6500.0 Après avoir retiré 2000 de cpt3 : Nom: Bob Finor, Numéro de compte: C103, Solde: 48000.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

