User Tools

Site Tools


2013_2014:s2:td:td_classes-code

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
2013_2014:s2:td:td_classes-code [2014/03/18 13:52] – [Mise en facteur, Spécialisation et énuméré: OutilElectrique] blay2013_2014:s2:td:td_classes-code [2015/04/18 05:43] (current) – [Classe ''TailleHaie''] blay
Line 17: Line 17:
 ===== Classe : Code et modélisation ===== ===== Classe : Code et modélisation =====
 <note tip>Les notes de bas de page vous donnent des indications sur certaines actions. Il suffit de laisser la souris sur les renvoies.</note> <note tip>Les notes de bas de page vous donnent des indications sur certaines actions. Il suffit de laisser la souris sur les renvoies.</note>
-==== Classe ''TailleHaie'' ====+==== Classe ''TailleHaie'' (10mn) ====
  
  
Line 27: Line 27:
   - Générer ou écrivez le code java correspondant à cette classe((Code->Java-roundtrip .. l'objectif est de maintenir la cohérence entre le modèle et le code)). On prévoira un constructeur qui initialisera le tailleHaie dans l’état éteint, avec une cadence de 0.   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'exception en implémentant les méthodes.   - Générer ou écrivez le code java correspondant à cette classe((Code->Java-roundtrip .. l'objectif est de maintenir la cohérence entre le modèle et le code)). On prévoira un constructeur qui initialisera le tailleHaie dans l’état éteint, avec une cadence de 0.   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'exception en implémentant les méthodes.
   - On veut pouvoir connaître la cadence du ''TailleHaie''.   - On veut pouvoir connaître la cadence du ''TailleHaie''.
 +  - Tester votre code. Si vous n'avez pas encore vu la notion de Test en java vous pouvez mettre vos tests dans un main et votre test peut ressembler à ce qui suit.
 +<code java>
 +public class TestOutils {
  
-<note importantMaintenez le modèle et le code en cohérence((Code -Java Round-trip)) .</note>+ public static void main(String[] args) { 
 + TailleHaie monTailleHaie = new TailleHaie(); 
 + System.out.println("Taille Haie crée : " + monTailleHaie); 
 + System.out.println("==Test init : " + (monTailleHaie.getCadence() == 0) ); 
 + monTailleHaie.switchOn(); 
 + System.out.println("Cadence du Taille Haie en fonctionnement : " + monTailleHaie.getCadence()); 
 + System.out.println("==Test fonctionnement : " + (monTailleHaie.getCadence(== 4500); 
 + monTailleHaie.switchOff(); 
 + System.out.println("Cadence du Taille Haie à l'arret : " + monTailleHaie.getCadence()); 
 + System.out.println("==Test Arret : " + (monTailleHaie.getCadence() == 0) ); 
 +  
 + }
  
 +}
 +</code>
 +
 +<note important> Maintenez le modèle et le code en cohérence((Code -> Java Round-trip)) .</note>
 ==== Classe ''Tondeuse'' ==== ==== Classe ''Tondeuse'' ====
  
Line 47: Line 65:
   - Modifier la modélisation et les codes en conséquences.   - Modifier la modélisation et les codes en conséquences.
   - Réécrire  en  conséquence  les classes  ''TailleHaie'' et ''Tondeuse''.     - Réécrire  en  conséquence  les classes  ''TailleHaie'' et ''Tondeuse''.  
-  - A la classe Tondeuse uniquement, ajouter un service setVitesse(Vitesse v) dont l’objectif est de fixer la vitesse de traction de la tondeuse (vitesses possibles : arret, lent, moyenne ou rapide). Les Vitesses sont un énuméré.+  - A la classe Tondeuse uniquement, ajouter un service setVitesse(Vitesse v) dont l’objectif est de fixer la vitesse de traction de la tondeuse (vitesses possibles : arret, lent, moyenne ou rapide). Les Vitesses sont un énuméré ((Créer une //enumeration// dans le modèle, lui ajouter les ''enumerate literal'' //arret//, ... Pour accéder dans votre code par exemple à l'énuméré "arret", vous écrirez par exemple, ''v = Vitesse.arret;'' ))
   - Redessiner le schéma UML de l’ensemble des classes et mettez les codes en cohérence (éteindre la tondeuse passe la vitesse à arrêt).   - Redessiner le schéma UML de l’ensemble des classes et mettez les codes en cohérence (éteindre la tondeuse passe la vitesse à arrêt).
      
Line 55: Line 73:
    - Ecrire   un   programme   principal  qui   crée   un   ''TailleHaie''   et   une   ''Tondeuse''   et  utilise  les  services  à  leur  disposition.      - Ecrire   un   programme   principal  qui   crée   un   ''TailleHaie''   et   une   ''Tondeuse''   et  utilise  les  services  à  leur  disposition.  
  
 +<note tip>N'hésitez pas à ajouter des commentaires dans vos codes, ils sont conservés par le java round-trip! </note>
 ==== Utiliser  une classe ==== ==== Utiliser  une classe ====
  
-Il  s’agit  de  créer  une  représentation  UML  d’une  classe  ''Jardinier''  dont  les  attributs  seront  le  prénom  du  jardinier  et  l’outil  électrique  qu’il  doit  utiliser  pour  travailler  (un  taille haie  ou  une  tondeuse).  Au  moment   de   sa   création,   on   suppose   que  le  jardiner   n’a   pas   d’outil  en  main.   L’outil  à   utiliser  sera  transmis  comme  argument  à une méthode ''startTravail''(…).  Prévoyez  également  une  méthode  ''stopTravail''(…).  +Il  s’agit  de  créer  une  représentation  UML  d’une  classe  ''Jardinier''  dont  les  attributs  seront  le  prénom  du  jardinier  et  l’outil  électrique  qu’il  doit  utiliser  pour  travailler  (un  taille haie  ou  une  tondeuse).  Au  moment   de   sa   création,   on   suppose   que  le  jardiner   n’a   pas   d’outil  en  main.   L’outil  à   utiliser  sera  transmis  comme  argument  à une méthode ''startTravail''(…).  Prévoyez  également  une  méthode  ''stopTravail''(…).  Quand le jardinier stoppe le travail, il ne lâche pas l'outil.
   - Complétez  la  représentation  UML  des  liens  entre  les  classes.   - Complétez  la  représentation  UML  des  liens  entre  les  classes.
   - Générer les codes correspondants. Si les résultas ne vous satisfont pas, corriger votre modèle. En particulier, vous devrez utiliser la navigation entre les classes.   - Générer les codes correspondants. Si les résultas ne vous satisfont pas, corriger votre modèle. En particulier, vous devrez utiliser la navigation entre les classes.
Line 70: Line 88:
   - Etant données les [[http://docs.oracle.com/javase/7/docs/api/java/awt/Point.html|spécifications suivantes]] en omettant tous les accesseurs dessiner la classe ''Point'' correspondante. Vous pouvez aussi procéder par reverse engineering {{:2013_2014:s2:td:point.java.zip|(classe Point)}}   - Etant données les [[http://docs.oracle.com/javase/7/docs/api/java/awt/Point.html|spécifications suivantes]] en omettant tous les accesseurs dessiner la classe ''Point'' correspondante. Vous pouvez aussi procéder par reverse engineering {{:2013_2014:s2:td:point.java.zip|(classe Point)}}
  
 +<note>Et si nous voulions à présent travaillez avec des points en coordonnées polaires, que ferions-nous? </note>
 ==== Utilisation d'une classe : Chemin et Trajet ==== ==== Utilisation d'une classe : Chemin et Trajet ====
  
2013_2014/s2/td/td_classes-code.1395150742.txt.gz · Last modified: 2014/03/18 13:52 by blay