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