You are on page 1of 4

Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique

et de Recherche Scientifique

P.O.O (Java)
TP5

Exercice 1 (classe abstraite) :


On définit les quatre classes suivantes :
 La classe MoyenDuTransport est abstraite et déclare uniquement une
méthode abstraite nommée action, sans paramètre et qui ne retourne rien.
 La classe Voiture hérite de la classe MoyenDuTransport et définit la
méthode action qui écrit à l'écran "Je suis une voiture. J’ai quatre roues".
 La classe Bicyclette hérite de la classe MoyenDuTransport et définit la
méthode action qui écrit à l'écran "Je suis une bicyclette. J’ai deux roues".
 La classe TestTransport contient :
o un champ statique pour un attribut de type java.util.Random qui est
initialisé dès sa définition
o une méthode statique nommée tirage sans paramètre qui retourne
un MoyenDuTransport qui a une chance sur deux d'être une Voiture et
une chance sur deux d'être un Bicyclette.
o une méthode main qui utilise la méthode tirage et invoque la
méthode action sur le moyen_du_transport obtenu par cette méthode.

Exercice 2 (classe abstraite) :


Créer la classe abstraite « Personne» dans le package « mere » avec les attributs
suivants sans modificateur : int id (incrémentation automatique), String prenom, String
nom, String email et double salaire.
1. Créer les classes «Developpeur» et «Manager» dans le package «fille ». Elles
héritent la classe Personne.
2. Qu’est-ce que vous remarquez ? Comment régler le problème.
3. Redéfinir la méthode calculerSalaire() de la classe Personne sachant que :
 Le développeur aura une augmentation de 20% par rapport à son salaire
normal.
 Le manager aura une augmentation de 35% par rapport à son salaire normal.
4. Créer deux développeurs et deux managers.
5. Afficher les informations des objets crées sous la forme :
Le salaire du Manager Sassi Fatma est 2160.0 DT et son service est
Finance
Le salaire du Manager Tounsi Ahmed est 1620.0 DT et son service
est Comptabilité

1/4 Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

Le salaire du Developpeur Abdi Mounir est : 2400.0 DT et sa


spécialité : JAVA
Le salaire du Developpeur Felhi Sana est : 3600.0 DT et sa
spécialité : Spring Boot
6. Afficher les informations des objets ayant un compte gmail.
7. Créer un objet de type Personne. Qu’est-ce que vous remarquez ?

Exercice 3 (classe abstraite ou interface) :


Ecrire les classes et/ou les interfaces nécessaires au fonctionnement du programme
suivant (en ne fournissant que les méthodes nécessaires à ce fonctionnement) :
package exercice3;
public class TestMetiers {
public static void main(String[] argv) {
Personne[] personnes = new Personne[3];
personnes[0] = new Menuisier("Samir", 8); // nom et année d’expérience
personnes[1] = new Plombier("Fathi", 15);
personnes[2] = new Menuisier("Nizar", 16);
System.out.println("La liste de toutes les personnes :");
for (Personne p : personnes) {
p.affiche();
}
System.out.println("\nLa liste des personnes ayant au moins 10 ans
d'éxpérience :");
for (Personne p : personnes) {
p.affichePlus10();
}
}
}

Exemple d’exécution :
La liste de toutes les personnes :
Je suis Samir. Je travaille en tant que Menuisier
Je suis Fathi. Je travaille comme Plombier
Je suis Nizar. Je travaille en tant que Menuisier

La liste des personnes ayant au moins 10 ans d'expérience :


Je suis Fathi. J'ai 15 ans d'expérience.
Je suis Nizar. J'ai 16 ans d'expérience.

Remarque : l’objet de type « Personne » contient les données suivantes : le nom et le


nombre d’année d’expérience d’une personne.

2/4 Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

Exercice 4 (classe abstraite ou interface) :


Ecrire les classes et/ou les interfaces nécessaires au fonctionnement du programme
suivant (en ne fournissant que les méthodes nécessaires à ce fonctionnement) :
package exercice4;
import java.text.DecimalFormat;
public class TestFormes {
public static void main(String[] argv) {
DecimalFormat df = new DecimalFormat(".0");
Forme[] figures = new Forme[3];
figures[0] = new Carre(6);
figures[1] = new Cercle(5);
figures[2] = new Carre(3);
for (int i = 0; i < figures.length; i++)
System.out.println("La surface de " +figures[i] + "
est égal à "
+ df.format(figures[i].calculerSurface()) + " cm2");
}
}

Exemple d’exécution :
La surface de Carré qui a la coté 6.0 cm est égal à 36,0 cm2
La surface de Cercle qui a le rayon 5.0 cm est égal à 78,5 cm2
La surface de Carré qui a la coté 3.0 cm est égal à 9,0 cm2

Remarque : l’objet de type Forme ne contient aucun attribut.

Exercice 5 (les collections) :


1. import java.util.*;
2. public class WrappedString {
3. private String s;
4. public WrappedString(String s) { this.s = s; }
5. public static void main(String[] args) {
6. HashSet<Object> hs = new HashSet<Object>();
7. WrappedString ws1 = new WrappedString("aardvark");
8. WrappedString ws2 = new WrappedString("aardvark");
9. String s1 = new String("aardvark");
10. String s2 = new String("aardvark");
11. hs.add(ws1); hs.add(ws2); hs.add(s1); hs.add(s2);
12. System.out.println(hs.size());
13. } }

3/4 Année Universitaire 2022/2023


Ministère de l’Enseignement Supérieur Institut Supérieur d’Informatique
et de Recherche Scientifique

Exercice 6 (les collections) :


1. public static Iterator<String> reverse(List<String> list) {
2. Collections.reverse(list);
3. return list.iterator();
4. }
5. public static void main(String[] args) {
6. List list = new ArrayList();
7. list.add("1");
8. list.add("2");
9. list.add("3");
10. for (Object obj: reverse(list))
11. System.out.print(obj + ", ");
12. }

Exercice 7 (les collections) :


On souhaite gérer les notes d’un
étudiant. Chaque étudiant sera défini par une classe Etudiant
et devra présenter les informations suivantes:
• un matricule;
• un nom;
• une liste de notes (de taille indéfinie).
Une classe Note permettra de contenir pour chaque cours, l'intitulé du cours ainsi que
la note obtenue. Les Notes de chaque étudiant seront stockées dans une ArrayList.
Une méthode addNote permettant d'ajouter une note à l'étudiant sera définie.

4/4 Année Universitaire 2022/2023

You might also like