HeH - ISIMs POO : Concept d`héritage - HEH

publicité
Département d'Informatique
Programmation orientée objet avec Java
2ère Bachelier IRT
HeH - ISIMs
POO : Concept d’héritage - spécialisation
Objectifs :
Utilisation de la classe DecimalFormat
Mise œuvre du concept d’héritage
Exercice 1 :
Dans un premier temps, familiarisez-vous avec la classe Java.text.DecimalFormat.
Cette classe permet de formater les nombres réels. Aidez-vous de la documentation
Oracle API Java : http://download.oracle.com/javase/1.4.2/docs/api/java/text/DecimalFormat.html
pour prendre connaissance de cette classe.
Le formatage d’un nombre s’effectue en deux étapes :
1) Appeler une méthode de formatage
=> constructeur DecimalFormat ou la méthode applyPattern de la classe DecimalFormat.
2) Lui dire de formater
=> méthode format de la classe DecimalFormat
La méthode setMinimumIntegerDigits vous sera nécessaire dans la suite du TP,
renseignez-vous sur son utilisation.
Réalisez une classe nommée TP.text.DecimalFormatPerso qui est construite sur base de
la classe DecimalFormat. Le but de cette classe est de faciliter le formatage des nombres
réels.
Le constructeur de la classe DecimalFormatPerso possède deux paramètres. Le premier
permet de choisir le formatage du nombre. Ce paramètre sera un type énuméré
comprenant les valeurs suivantes :
MONEATAIRE : affichera le nombre sous cette forme => € 12,34
TR2TI2
TP
- 1/4-
Département d'Informatique
Programmation orientée objet avec Java
2ère Bachelier IRT
HeH - ISIMs
SCIENTIFIQUE : affichera en notation scientifique, mantisse et exposant
=> 12,23E02)
POURCENTAGE : affichera le nombre sous cette forme => 12,34 %
Un type énuméré est un type dont la valeur fait partie d’un jeu de constantes définies.
Le second paramètre quant à lui spécifie le nombre total des chiffres constituant le
nombre. L’alignement des nombres à droite peut se faire soit en remplaçant les chiffres
manquant par des zéros (setZeroDevant(true)) ou des espaces (setZeroDevant(false)).
Utilisation de la classe DecimalFormatPerso
package formatNombre;
public class TestFormat
{
public static void main(String[] args)
{ DecimalFormatPerso fn;
double d=0.47697,e=12345.03;
System.out.print("Réel non formaté " + d + "\n");
System.out.print("Réel non formaté " + e + "\n");
fn=new DecimalFormatPerso(Notation.MONETAIRE,10);
fn.setZeroDevant(true);
System.out.print("Format monétaire \n");
System.out.print("******************* \n");
System.out.print(fn.formate(d)+"\n");
System.out.print(fn.formate(e)+"\n");
FormatageNombre fn2=new FormatageNombre(Notation.POURCENTAGE,10);
fn2.setZeroDevant(false);
System.out.print("Format pourcentage \n");
System.out.print("******************* \n");
System.out.print(fn2.formate(d)+"\n");
System.out.print(fn2.formate(e)+"\n");
FormatageNombre fn3=new FormatageNombre(Notation.SCIENTIFIQUE,10);
System.out.print("Format scientifique \n");
System.out.print("******************* \n");
System.out.print(fn3.formate(d)+"\n");
System.out.print(fn3.formate(e)+"\n");
}
}
TR2TI2
TP
- 2/4-
Département d'Informatique
Programmation orientée objet avec Java
2ère Bachelier IRT
HeH - ISIMs
Résultat
Réel non formaté 0.47697
Réel non formaté 12345.03
Format monétaire
*******************
€ 0000000,48
€ 0012345,03
Format pourcentage
*******************
47,70%
3,00%
Format scientifique
*******************
4,77E-01
1,23E+04
Exercice 2 :
Procurez-vous le fichier LibClock.jar et la documentation associée auprès de votre
enseignant. Lisez attentivement la documentation de cette classe.
a) Utilisation de la classe existante : Clock
N’oubliez pas de référencier le package LibClock.jar dans votre projet. Pour vérifier
si ce lien est correct, écrivez un programme construisant deux horloges. Changez
la couleur de fond d’une horloge.
b) Etendre une classe existante
Créer une classe ClockAlarm qui hérite de la classe Clock. Cette nouvelle classe
permettra d’obtenir une horloge équipée d’une alarme.
Une méthode permettra de couper l’alarme (mettreAlarmeOff()) et une autre de
l’activer (mettreAlarmeOn()).
Le paramétrage de l’heure de l’alarme se fera à l’aide de la méthode setAlarm().
TR2TI2
TP
- 3/4-
Département d'Informatique
Programmation orientée objet avec Java
2ère Bachelier IRT
HeH - ISIMs
TR2TI2
TP
- 4/4-
Téléchargement