User Tools

Site Tools


2018_2019:s2:td:td_classe_code

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
Last revision Both sides next revision
2018_2019:s2:td:td_classe_code [2019/02/16 19:34]
blay [2) Je sais passer du modèle d'une classe avec un attribut au code]
2018_2019:s2:td:td_classe_code [2019/02/25 09:13]
blay
Line 5: Line 5:
 **Objectifs :**  **Objectifs :** 
      - Faire un lien direct entre la modélisation des classes et les codes correspondants.      - Faire un lien direct entre la modélisation des classes et les codes correspondants.
- + <note important>​Nous faisons le lien entre modèles et codes.  
-<note important>​Nous faisons le lien entre modèles et codes.  +Vous pouvez travailler les codes uniquement au niveau du papier ​(mais c'est peut-être dommage).
-Vous pouvez travailler les codes uniquement au niveau du papier.+
 Vous devez essentiellement comprendre les grands principes. Vous devez essentiellement comprendre les grands principes.
 </​note>​ </​note>​
 +
 +<alert type="​success"​ icon="​glyphicon glyphicon-time"​ dismiss="​true">​
 +TD de 4 h.\\
 +Il n'y a pas de rendus associé à ce TD, cependant il doit faire partie du carnet de bord.
 +Donc notez bien les points qui vous semblent difficiles, les remarques qu'il vous semble important de diffuser, etc.
 +</​alert>​
 +
 +
  
 ===== Je comprends ===== ===== Je comprends =====
Line 61: Line 68:
  
 <​accordion ​ collapsed="​true">​ <​accordion ​ collapsed="​true">​
-<panel title="​Les codes correspondants">​+<​panel ​icon="​glyphicon glyphicon-download"  ​title="​Les codes correspondants">​
 Le concept d'"​Engin"​ modélisé ici sous la forme d'une classe contient à présent un attribut qui permet d'​exprimer la puissance. Il sera représenté par le code suivant :  Le concept d'"​Engin"​ modélisé ici sous la forme d'une classe contient à présent un attribut qui permet d'​exprimer la puissance. Il sera représenté par le code suivant : 
  
Line 90: Line 97:
 ?> ?>
 </​code>​ </​code>​
-</​accordion>​+
 </​panel> ​ </​panel> ​
 +</​accordion>​
 +
 === Complétons ce code === === Complétons ce code ===
  
 Pour pouvoir accéder à cet attribut nous allons à présent dans le code définir des //​accesseurs//​. Pour pouvoir accéder à cet attribut nous allons à présent dans le code définir des //​accesseurs//​.
 +
 +<​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Ajout des accesseurs">​
  
 Le code de la classe Engin en java devient : Le code de la classe Engin en java devient :
Line 115: Line 127:
 } }
 </​code>​ </​code>​
 +</​panel> ​
 +</​accordion>​
  
 A partir de ce code, nous pouvons à présent créer une "​instance"​ de la classe "​Engine"​ et lui affecter une puissance de 2000. A partir de ce code, nous pouvons à présent créer une "​instance"​ de la classe "​Engine"​ et lui affecter une puissance de 2000.
Line 137: Line 151:
 ==== 3) Je sais passer du modèle d'une classe avec un attribut et une méthode au code ==== ==== 3) Je sais passer du modèle d'une classe avec un attribut et une méthode au code ====
 {{:​2017_2018:​s2:​td:​engine-stop.png?​200|}} {{:​2017_2018:​s2:​td:​engine-stop.png?​200|}}
 +
 +<​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Les codes correspondants">​
  
 **Code généré en java** **Code généré en java**
Line 171: Line 188:
 </​code>​ </​code>​
  
 +</​panel> ​
 +</​accordion>​
 Une proposition d'​implémentation en java pour ''​stop''​ :  Une proposition d'​implémentation en java pour ''​stop''​ : 
  
Line 259: Line 278:
 {{:​2017_2018:​s2:​td:​14450576294_886eb4b940_b.jpg?​300 |}} {{:​2017_2018:​s2:​td:​14450576294_886eb4b940_b.jpg?​300 |}}
 {{:​2017_2018:​s2:​td:​capture_d_e_cran_2018-02-11_a_01.14.10.png?​500|}} {{:​2017_2018:​s2:​td:​capture_d_e_cran_2018-02-11_a_01.14.10.png?​500|}}
 +
 +<​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Les codes correspondants">​
 +
  
 **Code java correspondant ** **Code java correspondant **
Line 293: Line 316:
 </​code>​ </​code>​
  
 +</​panel>​  
 +</​accordion>​
  
 Complétons la classe ''​Engine''​ pour manipuler les pilotes. Complétons la classe ''​Engine''​ pour manipuler les pilotes.
 +<​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Les codes correspondants">​
 +
 <code java> <code java>
 public class Engine { public class Engine {
Line 335: Line 362:
 </​code>​ </​code>​
  
 +</​panel> ​
 +</​accordion>​
 On ajoute des tests On ajoute des tests
 <code java> <code java>
Line 377: Line 406:
 La classe ''​Pilot''​ générée est donc modifiée. La classe ''​Pilot''​ générée est donc modifiée.
 Remarquez que la multiplicité de 1 cette fois-ci crée un attribut simple de type Engine Remarquez que la multiplicité de 1 cette fois-ci crée un attribut simple de type Engine
 +
 +<​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Les codes correspondants">​
  
 <code java> <code java>
Line 399: Line 431:
 } }
 </​code>​ </​code>​
 +</​panel> ​
 +</​accordion>​
  
 Pour tester nous ajoutons à présent l'​engin defiance comme celui conduit par l'​amiral //nammo// Pour tester nous ajoutons à présent l'​engin defiance comme celui conduit par l'​amiral //nammo//
Line 406: Line 440:
 </​code>​ </​code>​
  
-Nous décidons à présent que l'on ne veut pas que n'​importe qui affecte un engin à un pilote (on passe la méthode setDrivenEngine en Protected) et que lorsque l'on affecte un pilote à un engin alors il en devient pilote. Nous modifions nos codes comme suit.+Nous décidons à présent que l'on ne veut pas que n'​importe qui affecte un engin à un pilote (on passe la méthode setDrivenEngine en Protected) et que lorsque l'on affecte un pilote à un engin alors il en devient pilote. Nous modifions nos codes. 
 +<​accordion ​ collapsed="​true">​ 
 +<panel icon="​glyphicon glyphicon-download"​ title="​Les codes correspondants">​ 
 + 
  
 <code java> <code java>
Line 465: Line 503:
 </​code>​ </​code>​
  
 +</​panel> ​
 +</​accordion>​
 Nous testons ce code. Nous testons ce code.
 <code java> <code java>
Line 488: Line 528:
  
 </​code>​ </​code>​
-===== A vous  =====+===== 6) A vous : appliquez tout seul ce qui précède ​=====
    
 {{:​2017_2018:​s2:​td:​capture_d_e_cran_2018-01-21_a_23.23.59.png?​200|}} {{:​2017_2018:​s2:​td:​capture_d_e_cran_2018-01-21_a_23.23.59.png?​200|}}
Line 514: Line 554:
    - Quel code correspond au diagramme de classe UML ci-dessus ?    - Quel code correspond au diagramme de classe UML ci-dessus ?
 */ */
-===== Je sais passer du modèle d'une relation d'​héritage au code ====+===== 7) Je sais passer du modèle d'une relation d'​héritage au code ====
  
 {{:​2017_2018:​s2:​td:​star-wars-the-old-republic-girl-warrior-lightsabers-battle-smoke-wallpaper-hd.jpg?​300 |}} {{:​2017_2018:​s2:​td:​star-wars-the-old-republic-girl-warrior-lightsabers-battle-smoke-wallpaper-hd.jpg?​300 |}}
 {{:​2017_2018:​s2:​td:​weapons.png?​400|}} {{:​2017_2018:​s2:​td:​weapons.png?​400|}}
 +
 +<​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Les codes correspondants au diagramme">​
  
  
Line 554: Line 597:
 </​code>​ </​code>​
  
 +</​panel> ​
 +</​accordion>​
  
 Je peux accéder au propriétaire d'une arme quelconque. Je peux accéder au propriétaire d'une arme quelconque.
Line 562: Line 607:
  excaLight.setBelongsTo(Revan);​  excaLight.setBelongsTo(Revan);​
 </​code>​ </​code>​
-===== A vous ====+===== 8) A vous ====
  
 /*  /* 
Line 573: Line 618:
    - Quel code correspond au diagramme de classe UML ci-dessus ?    - Quel code correspond au diagramme de classe UML ci-dessus ?
    - Imaginez que l'on veuille pouvoir demander à une ''​Armada''​ d'​attaquer,​ quelle méthode devez-vous ajouter?    - Imaginez que l'on veuille pouvoir demander à une ''​Armada''​ d'​attaquer,​ quelle méthode devez-vous ajouter?
 +   - <​accordion ​ collapsed="​true">​
 +<panel icon="​glyphicon glyphicon-download"​ title="​Voici le code de cette nouvelle méthode, si besoin">​
 +
    - Voici le code de cette nouvelle méthode :     - Voici le code de cette nouvelle méthode : 
 <code java> <code java>
Line 594: Line 642:
  sithArmada.attack();​  sithArmada.attack();​
 </​code>​ </​code>​
-===== Je sais passer du code au modèle =====+ 
 +</​panel>​  
 +</​accordion>​ 
 +===== 9) Je sais passer du code au modèle =====
  
 <​code>​ <​code>​
Line 639: Line 690:
  
 ===== Complétez le diagramme de séquence ===== ===== Complétez le diagramme de séquence =====
-Compléter les deux diagrammes pour introduire : +Compléter les diagrammes ​de classes et séquence ​pour introduire : 
       - les armadas attaquent. Chaque armada demande à ses engins d'​attaquer.       - les armadas attaquent. Chaque armada demande à ses engins d'​attaquer.
  
2018_2019/s2/td/td_classe_code.txt · Last modified: 2019/02/27 15:25 by blay