Exercices corrigés Java – Programmation Orientée Objet | Partie 6
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 « Animal » avec des attributs tels que le nom, la race et l’âge. Créez des sous-classes « Chien » et « Oiseau » qui ajoutent des attributs spécifiques tels que le jouet préféré pour les chiens et la taille de l’aile pour les oiseaux. Implémentez des méthodes pour afficher les détails de l’animal et calculer son âge en années humaines.
Diagrame de classe:

// Définir la classe Animal
class Animal {
// Attributs de la classe Animal
String nom;
String race;
int age;
// Constructeur pour la classe Animal
public Animal(String nom, String race, int age) {
this.nom = nom;
this.race = race;
this.age = age;
}
// Méthode d'affichage des détails de l'animal
public void afficher() {
System.out.println("Nom: "+ nom);
System.out.println("Race: "+ race);
System.out.println("Age: "+ age +" années");
}
// Méthode de calcul de l'âge de l'animal en années humaines
public int calculerAge() {
if (race.equals("Chien")) {
return age * 7;
} else {
// En supposant que l'âge de l'oiseau en années humaines
// est le même que l'âge réel
return age;
}
}
}
// Définir la classe Chien qui hérite de Animal
class Chien extends Animal {
// Attribut supplémentaire pour la classe Chien
String jouet;
// Constructeur pour la classe Chien
public Chien(String nom, int age, String jouet) {
// Appeler le constructeur de la classe mére
super(nom, "Chien", age);
this.jouet = jouet;
}
// Surcharger la méthode afficher pour inclure le jouet préféré
@Override
public void afficher() {
super.afficher();
System.out.println("Le jouet préféré: " + jouet);
}
}
// Définir la classe Oiseau qui hérite de Animal
class Oiseau extends Animal {
// Attribut supplémentaire pour la classe Oiseau
double tailleAile;
// Constructeur pour la classe Oiseau
public Oiseau(String nom, int age, double tailleAile) {
// Appeler le constructeur de la classe mére
super(nom, "Oiseau", age);
this.tailleAile = tailleAile;
}
// Surcharger la méthode afficher pour inclure la taille de
// l'aile
@Override
public void afficher() {
super.afficher();
System.out.println("La taille de l'aile: "+ tailleAile +" mètres");
}
}
// Définir la classe Main
public class Main {
public static void main(String[] args) {
// Créer une instance de Chien
Chien c = new Chien("Beagle", 4, "Cordes");
// Créer une instance de Oiseau
Oiseau o = new Oiseau("Calopsitte", 3, 1.5);
// Afficher les informations sur le chien
System.out.println("Informations sur le chien:");
c.afficher();
System.out.println("Âge du chien en années humaines: "+ c.calculerAge());
// Afficher les informations sur l'oiseau
System.out.println("\nInformations sur l'oiseau:");
o.afficher();
System.out.println("Âge de l'oiseau en années humaines: "+ o.calculerAge());
}
}
Sortie:
Informations sur le chien: Nom: Beagle Race: Chien Age: 4 années Le jouet préféré: Cordes Âge du chien en années humaines: 28 Informations sur l'oiseau: Nom: Calopsitte Race: Oiseau Age: 3 années La taille de l'aile: 1.5 mètres Âge de l'oiseau en années humaines: 3
Exercice 2:
Écrire un programme Java pour créer une classe appelée « AbonnementGym » avec des attributs pour le nom du membre, le type d’adhésion et la durée. Créer une sous-classe « AbonnementPremium » qui ajoute des attributs pour la disponibilité d’un entraîneur personnel et l’accès au spa. Implémentez des méthodes pour calculer les frais d’adhésion et vérifier s’il existe des offres spéciales basées sur le type d’adhésion.
Diagrame de classe:

// Définir la classe AbonnementGym
class AbonnementGym {
// Attributs pour AbonnementGym
String nom;
String type;
int duree; // en mois
// Constructeur pour AbonnementGym
public AbonnementGym(String nom, String type, int duree) {
this.nom = nom;
this.type = type;
this.duree = duree;
}
// Méthode de calcul des frais d'adhésion
public double calculerFrais() {
double base = 50.0; // Frais de base par mois
return base * duree;
}
// Méthode pour vérifier les offres spéciales
public String checkOffresSpeciales() {
if (type.equalsIgnoreCase("annuelle")) {
return "10% réduction sur l'adhésion annuelle.";
} else {
return "Aucune offre spéciale n'est disponible.";
}
}
// Méthode d'affichage des détails de l'abonnement
public void afficher() {
System.out.println("Nom du membre: "+ nom);
System.out.println("Type d'abonnement: "+ type);
System.out.println("Durée: "+ duree +" months");
System.out.println("Frais d'abonnement: "+ calculerFrais() +" €");
System.out.println("Offre spéciale: "+ checkOffresSpeciales());
}
}
// Définir la classe AbonnementPremium qui hérite de AbonnementGym
class AbonnementPremium extends AbonnementGym {
// Attributs supplémentaires pour AbonnementPremium
boolean entraineurPersonnel;
boolean AccesSpa;
// Constructeur pour AbonnementPremium
public AbonnementPremium(String nom, String type, int duree, boolean entraineurPersonnel, boolean AccesSpa) {
super(nom, type, duree);
this.entraineurPersonnel = entraineurPersonnel;
this.AccesSpa = AccesSpa;
}
// Surcharger la méthode calculerFrais pour inclure des coûts
// supplémentaires
@Override
public double calculerFrais() {
double base = super.calculerFrais();
double fraisSupplementaires = 0.0;
if (entraineurPersonnel) {
// Frais supplémentaires par mois pour un entraîneur
// personnel
fraisSupplementaires += 30.0 * duree;
}
if (AccesSpa) {
// Frais supplémentaires par mois pour l'accès au spa
fraisSupplementaires += 20.0 * duree;
}
return base + fraisSupplementaires;
}
// Surcharger la méthode afficher pour inclure les détails de
// l'abonnement premium
@Override
public void afficher() {
super.afficher();
System.out.println("Entraîneur personnel disponible: "+ (entraineurPersonnel ? "Oui" : "Non"));
System.out.println("Accès au spa: "+ (AccesSpa ? "Oui" : "Non"));
}
}
// Définir la classe Main
public class Main {
public static void main(String[] args) {
// Créer une instance de AbonnementGym
AbonnementGym a = new AbonnementGym("Alex Babto", "Mensuel", 5);
// Créer une instance de AbonnementPremium
AbonnementPremium b = new AbonnementPremium("Emily Lyona", "Annuelle", 12, true, true);
// Afficher les détails de l'abonnement de base
System.out.println("Détails de l'abonnement de base:");
a.afficher();
// Afficher les détails de l'abonnement premium
System.out.println("\nDétails de l'abonnement premium:");
b.afficher();
}
}
Sortie:
Détails de l'abonnement de base: Nom du membre: Alex Babto Type d'abonnement: Mensuel Durée: 5 months Frais d'abonnement: 250.0 € Offre spéciale: Aucune offre spéciale n'est disponible. Détails de l'abonnement premium: Nom du membre: Emily Lyona Type d'abonnement: Annuelle Durée: 12 months Frais d'abonnement: 1200.0 € Offre spéciale: 10% réduction sur l'adhésion annuelle. Entraîneur personnel disponible: Oui Accès au spa: Oui
É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



