User Tools

Site Tools


2017_2018:s2:td:td_domaine_partie_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2017_2018:s2:td:td_domaine_partie_2 [2018/02/18 20:19]
blay [Mise en facteur et Spécialisation : OutilElectrique (10mn)]
2017_2018:s2:td:td_domaine_partie_2 [2018/03/05 17:43] (current)
blay [Utiliser une classe (25mn)]
Line 9: Line 9:
  
  
 +<callout type="​info"​ icon="​true">​  
 +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'​examen. Vous devez les préparer pour que ces séances soient vraiment efficaces. 
 +</​callout>​
 ===== Classe : Code et modélisation ===== ===== Classe : Code et modélisation =====
 <note tip> <note tip>
Line 19: Line 23:
  
 <​note>​Exercices inspirés de http://​www.fresnel.fr/​perso/​derrode/​index.html (le site a disparu... et je n'en trouve plus trace...)</​note>​ <​note>​Exercices inspirés de http://​www.fresnel.fr/​perso/​derrode/​index.html (le site a disparu... et je n'en trouve plus trace...)</​note>​
 +
 +<note warning>​Vous rencontrez beaucoup de soucis avec Modelio. \\
 +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'​outil VisualParadigm est beaucoup plus stable. Cependant il vous faut la version de test professionnelle pour avoir le générateur de codes.Vous l'​aurez au moins jusqu'​à la fin du module.
 +</​note>​
 <​html>​ <​html>​
 <​!-- ​ <​!-- ​
Line 117: Line 126:
 } }
 </​code>​ </​code>​
-<note important>​ Maintenez le modèle et le code en cohérence((Code -> Java Round-trip)) .</​note>​+<note important>​ Maintenez le modèle et le code en cohérence((si outil : Code -> Java Round-trip)) .</​note>​
 ==== Classe ''​Tondeuse''​ (10mn) ==== ==== Classe ''​Tondeuse''​ (10mn) ====
  
 Sur  le  même  modèle, ​ une  tondeuse ​ est  caractérisée ​ par  ​ Sur  le  même  modèle, ​ une  tondeuse ​ est  caractérisée ​ par  ​
     * la  vitesse ​ de  rotation ​ de  sa  lame,  typiquement 1000 Tour/​minute;​     * la  vitesse ​ de  rotation ​ de  sa  lame,  typiquement 1000 Tour/​minute;​
 +    * une cadence;
     * switchOn()+:​ méthode qui allume l’outil et fixe la cadence à 1000;     * switchOn()+:​ méthode qui allume l’outil et fixe la cadence à 1000;
     * switchOff()+:​ méthode qui éteint l’outil et fixe la cadence à 0.      * switchOff()+:​ méthode qui éteint l’outil et fixe la cadence à 0. 
Line 172: Line 182:
  
  public abstract void switchOn();  public abstract void switchOn();
- 
  
  @Override  @Override
Line 183: Line 192:
  
 Pour la classe qui étend :  Pour la classe qui étend : 
-<code java+ 
 +<code java>
 public class TailleHaie extends OutilElectrique{ public class TailleHaie extends OutilElectrique{
  
Line 194: Line 204:
  this.setCadence(0);​  this.setCadence(0);​
  }  }
-  
- 
- 
 } }
 </​code>​ </​code>​
Line 203: Line 210:
   - 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) ====+<​accordion ​ collapsed="​true">​ 
 +/* ---------------- 
 +*/ 
 +<panel title="​Facultatif sur les énumérés" ​ > 
 +==== (Facultatif) ​Spécialisation et Enuméré ​ (10 mn) ====
 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 //​énuméré//​. Créer une //​enumeration//​ dans le modèle, lui ajouter les ''​enumerate literal''​ //arret//, ...    - Modifier le **modèle** de la classe Tondeuse pour tenir compte de cette nouvelle information. Les Vitesses sont un //​énuméré//​. Créer une //​enumeration//​ dans le modèle, lui ajouter les ''​enumerate literal''​ //arret//, ... 
Line 230: Line 241:
   ​   ​
 <note tip>​N'​hésitez pas à ajouter des commentaires dans vos codes, ils sont conservés par le java round-trip! </​note>​ <note tip>​N'​hésitez pas à ajouter des commentaires dans vos codes, ils sont conservés par le java round-trip! </​note>​
 +
 +</​panel>​
 +</​accordion>​
 ==== Utiliser ​ une classe (25mn) ==== ==== Utiliser ​ une classe (25mn) ====
  
Line 243: Line 257:
   - Compléter ​ les codes correspondants.   - Compléter ​ les codes correspondants.
   - Eventuellement par reverse-engineering,​ reconstruisez votre modèle.   - Eventuellement par reverse-engineering,​ reconstruisez votre modèle.
-  - Evidemment tester votre programme. Voici un exemple de trace possible à l'​exécution des tests.+  - Evidemment tester votre programme. Voici un exemple de trace possible à l'​exécution des tests. ​
 <​code>​ <​code>​
 =========================TESTS Jardinier =================== =========================TESTS Jardinier ===================
Line 258: Line 272:
  
  
-<note warning>Cela fait 1hSi 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> 
 +   ​public class Jardinier{ 
 +        // Un constructeur qui prend le nom en parametre 
 + public Jardinier(String nom) { 
 + this.nom = nom; 
 +
 +</​code>​ 
 +  * Pour créer un jardinier maintenant, ​vous devez lui donner un nom. 
 +<​code>​ 
 +Jardinier monJardinier = new Jardinier("​R2-D2"​);​ 
 +</​code>​ 
 +  * Pour visualiser un objet java, vous pouvez redéfinir son affichage ​en implémenentant une méthode ''​String ToString()''​ par exemple :  
 +<code> 
 + public String toString() { 
 + String s = "Je suis " +  nom ; 
 + if (outil== null) 
 + s += " : je n'ai pas d'​outil "; 
 + else 
 + s += ", je tiens : " +  outil ; 
 + return s; 
 + }
  
 +</​code>​
 ===== Allons plus loin ===== ===== Allons plus loin =====
  
2017_2018/s2/td/td_domaine_partie_2.1518981547.txt.gz · Last modified: 2018/02/18 20:19 by blay