Une calculatrice
On veut créer une classe qui représente une calculatrice (cf. figure ci-contre).
- Quels sont les champs nécessaires pour cette classe ? Quel est leur type ?
- Quelles sont les méthodes qu'il faut créer ? Quelle est leur signature ? On veut réaliser toutes les opérations de cette calculatrice, y compris la flèche à gauche qui enlève le chiffre unité dans le nombre présent dans l'accumulateur.
- Pour les touches chiffre (0, 1, ..., 9), on proposera deux façons de faire. La première façon consiste à définir une méthode par chiffre (zero(), un(), ...). La deuxième façon consiste à avoir une méthode chiffre avec un paramètre (le chiffre à entrer, pas un nombre!)
- Ecrire le code Java qui correspond et le tester.
Note: Si x est une variable numérique, l'instruction Java Math.sqrt(x)
calcule la racine carrée de x.
Le temps qui passe
On veut écrire un programme qui permet de convertir des secondes, en minutes et en heures.
- Proposer une classe
Temps
avec une méthode String convertir(int secondes);
qui prend en paramètre un nombre de secondes et renvoie une chaîne de caractères qui donne le nombre d'heures et de minutes représentés par ce nombre de secondes. Par exemple, t.convertir(4567)
doit renvoyer la chaîne "1h 16mn 7s"
. - Comment faire pour tester cette méthode ?
- Y a-t-il un intérêt à avoir plusieurs instances de la classe
Temps
?
Les nombres complexes et les références
Implanter les deux classes ComplexeCartesien
et ComplexePolaire
vues en cours. Ceux qui veulent (et qui savent) pourront ajouter un constructeur. Les autres attendront le prochain cours pour savoir de quoi l'on parle et utiliseront simplement la notation pointée pour choisir les valeurs des champs.
- Sachant que la norme d'un nombre complexe est le carré du module sauriez vous ajouter une méthode
module()
dans ces deux classes ?
Créer deux objets c1
et c2
de type ComplexeCartesien
qui représentent la même valeur, par exemple le nombre complexe i
.
- Que se passe-t-il si l'on compare
c1
et c2
avec l'opérateur de comparaison ==
? Proposer un programme Java qui (dé)montre vos affirmations. - Que se passe-t-il si au lieu de travailler avec deux objets on travaille avec un seul objet et (toujours) deux références ? Proposer un (autre) programme Java qui illustre cette situation. Si vous ne connaissez pas la différence entre référence et objet il faut relire le cours, faire la distinction est essentiel pour pouvoir programmer en Java !
- Ajouter une méthode
boolean egalA(ComplexeCartesien c)
qui permet de comparer la valeur d'un nombre complexe avec un autre. Testez-la!