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:03] – [Classes : modélisation et codage] 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 44: | Line 53: | ||
| private int cadence = 4500; | private int cadence = 4500; | ||
| - | //Accesseur | + | // |
| public int getCadence() { | public int getCadence() { | ||
| return this.cadence; | return this.cadence; | ||
| Line 54: | Line 63: | ||
| | | ||
| - | this.setCadence(4500); | + | cadence = 4500; |
| } | } | ||
| - | public void switchOff() { | ||
| - | this.setCadence(0); | ||
| - | } | ||
| // | // | ||
| Line 66: | Line 72: | ||
| } | } | ||
| } | } | ||
| - | </ | + | </ |
| - | Les exceptions levées dans le corps des méthodes générées permettent de signaler les méthodes encore non implémentées. Vous devez retirer les levées d' | + | |
| - On veut pouvoir connaître la cadence du '' | - On veut pouvoir connaître la cadence du '' | ||
| - Tester votre code. Si vous n'avez pas encore vu la notion de Test en java vous pouvez mettre vos tests dans une classe dédiée comportant un '' | - Tester votre code. Si vous n'avez pas encore vu la notion de Test en java vous pouvez mettre vos tests dans une classe dédiée comportant un '' | ||
| Line 121: | 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 149: | 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 181: | Line 241: | ||
| | | ||
| <note tip> | <note tip> | ||
| + | |||
| + | </ | ||
| + | </ | ||
| ==== Utiliser | ==== Utiliser | ||
| Line 194: | 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 209: | 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.1518980580.txt.gz · Last modified: 2018/02/18 19:03 (external edit)