2017_2018:s2:td:td_domaine_partie_2
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2017_2018:s2:td:td_domaine_partie_2 [2018/02/18 19:07] – [Mise en facteur et Spécialisation : OutilElectrique (10mn)] blay | 2017_2018:s2:td:td_domaine_partie_2 [2018/03/05 16:43] (current) – [Utiliser une classe (25mn)] blay | ||
---|---|---|---|
Line 9: | Line 9: | ||
+ | <callout type=" | ||
+ | Il ne reste que 4 séances en tout. | ||
+ | * La semaine du 5 mars est consacrée à cette feuille de TD. | ||
+ | * La semaine du 12 mars est consacrée à des révisions pour l' | ||
+ | </ | ||
===== Classe : Code et modélisation ===== | ===== Classe : Code et modélisation ===== | ||
<note tip> | <note tip> | ||
Line 19: | Line 23: | ||
< | < | ||
+ | |||
+ | <note warning> | ||
+ | Vous pouvez faire ce TD sur papier mais il vous manquera la génération des codes et le reverse-engineering des codes aux modèles. Vous devez alors voir précisément avec votre enseignant.\\ | ||
+ | L' | ||
+ | </ | ||
< | < | ||
< | < | ||
Line 30: | Line 39: | ||
--!> | --!> | ||
</ | </ | ||
- | ==== Classe '' | + | ==== Classe '' |
Line 117: | Line 126: | ||
} | } | ||
</ | </ | ||
- | <note important> | + | <note important> |
- | ==== Classe '' | + | ==== Classe '' |
- | Sur le même modèle, | + | Sur le même modèle, |
- | typiquement 1000 Tour/minute. On prévoira | + | * la vitesse |
- | * switchOn()+: | + | * une cadence; |
+ | * switchOn()+: | ||
* switchOff()+: | * switchOff()+: | ||
Line 145: | Line 155: | ||
- Mettez en facteur les éléments qui peuvent l' | - Mettez en facteur les éléments qui peuvent l' | ||
- | - En fonction de vos choix, | + | - Pour les plus avancés, en fonction de vos choix, |
- | - Modifier la modélisation et les codes en conséquences. | + | - Modifier la modélisation et les codes en conséquence.(( |
+ | <code java> | ||
+ | public abstract class OutilElectrique { | ||
+ | private int cadence = 4500; | ||
+ | |||
+ | public int getCadence() { | ||
+ | return this.cadence; | ||
+ | } | ||
+ | |||
+ | protected void setCadence(int cadence){ | ||
+ | this.cadence = cadence; | ||
+ | } | ||
+ | |||
+ | public OutilElectrique() { | ||
+ | this.cadence = 0; | ||
+ | } | ||
+ | |||
+ | public boolean isOn(){ | ||
+ | return cadence != 0; | ||
+ | } | ||
+ | |||
+ | public void switchOff() { | ||
+ | cadence = 0; | ||
+ | } | ||
+ | |||
+ | public abstract void switchOn(); | ||
+ | |||
+ | @Override | ||
+ | public String toString() { | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | Pour la classe qui étend : | ||
+ | |||
+ | <code java> | ||
+ | public class TailleHaie extends OutilElectrique{ | ||
+ | |||
+ | public void switchOn() { | ||
+ | this.setCadence(4500); | ||
+ | } | ||
+ | |||
+ | // | ||
+ | public TailleHaie(){ | ||
+ | this.setCadence(0); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | )) | ||
- Réécrire | - Réécrire | ||
- Relancer vos tests **sans les modifier**! Ils doivent toujours fonctionner! | - Relancer vos tests **sans les modifier**! Ils doivent toujours fonctionner! | ||
- | ==== Spécialisation et Enuméré (10 mn) ==== | + | < |
+ | /* ---------------- | ||
+ | */ | ||
+ | <panel title=" | ||
+ | ==== (Facultatif) | ||
La tondeuse a plusieurs vitesses de traction possibles : arret, lent, moyen ou rapide. Il est possible de changer la vitesse de la tondeuse. Au démarrage, sa vitesse est toujours à moyenne. Lorsque l'on éteint la tondeuse sa vitesse passe à arrêt. | La tondeuse a plusieurs vitesses de traction possibles : arret, lent, moyen ou rapide. Il est possible de changer la vitesse de la tondeuse. Au démarrage, sa vitesse est toujours à moyenne. Lorsque l'on éteint la tondeuse sa vitesse passe à arrêt. | ||
- Modifier le **modèle** de la classe Tondeuse pour tenir compte de cette nouvelle information. Les Vitesses sont un // | - Modifier le **modèle** de la classe Tondeuse pour tenir compte de cette nouvelle information. Les Vitesses sont un // | ||
Line 177: | Line 241: | ||
| | ||
<note tip> | <note tip> | ||
+ | |||
+ | </ | ||
+ | </ | ||
==== Utiliser | ==== Utiliser | ||
Line 190: | Line 257: | ||
- Compléter | - Compléter | ||
- Eventuellement par reverse-engineering, | - Eventuellement par reverse-engineering, | ||
- | - Evidemment tester votre programme. Voici un exemple de trace possible à l' | + | - Evidemment tester votre programme. Voici un exemple de trace possible à l' |
< | < | ||
=========================TESTS Jardinier =================== | =========================TESTS Jardinier =================== | ||
Line 205: | Line 272: | ||
- | <note warning>Cela fait 1h. Si vous avez mis plus d'une heure pour arriver là vous êtes en retard ! </note> | + | Pour vous aider : |
+ | * Vous ne pouvez pas modifier le nom du Jardinier donc vous devez lui donner un nom à la création, pour cela vous créez un constructeur : | ||
+ | <code> | ||
+ | | ||
+ | // Un constructeur qui prend le nom en parametre | ||
+ | public Jardinier(String nom) { | ||
+ | this.nom = nom; | ||
+ | } | ||
+ | </ | ||
+ | * Pour créer un jardinier maintenant, | ||
+ | < | ||
+ | Jardinier monJardinier = new Jardinier(" | ||
+ | </ | ||
+ | * Pour visualiser un objet java, vous pouvez redéfinir son affichage | ||
+ | <code> | ||
+ | public String toString() { | ||
+ | String s = "Je suis " + nom ; | ||
+ | if (outil== null) | ||
+ | s += " : je n'ai pas d' | ||
+ | else | ||
+ | s += ", je tiens : " + outil ; | ||
+ | return s; | ||
+ | } | ||
+ | </ | ||
===== Allons plus loin ===== | ===== Allons plus loin ===== | ||
2017_2018/s2/td/td_domaine_partie_2.1518980861.txt.gz · Last modified: 2018/02/18 19:07 by blay