This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2017_2018:s2:td:td_classe_code [2018/02/11 11:58] blay [A vous] |
2017_2018:s2:td:td_classe_code [2018/02/19 15:44] (current) blay [Je sais passer du dessin d'une classe avec un attribut et une méthode au code] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Classes : modélisation et codage ====== | + | ====== Des modèles aux codes et vis-versa ====== |
**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 modeles et codes. | ||
+ | Vous pouvez travailler les codes uniquement au niveau du papier. | ||
+ | Vous devez essentiellement comprendre les grands principes. | ||
+ | </note> | ||
+ | |||
+ | <note tip>L'utilisation d'un outil pour coder n'est pas indispensable dans ce TD. Si vous le voulez vous pouvez utiliser ECLIPSE, mais la version NEON3, les autres ne fonctionnent pas...</note> | ||
===== Je comprends ===== | ===== Je comprends ===== | ||
==== Je sais passer du dessin d'une classe au code ==== | ==== Je sais passer du dessin d'une classe au code ==== | ||
+ | {{:2017_2018:s2:td:outrider.jpg?300 |}} | ||
{{:2017_2018:s2:td:engin.png?200|}} | {{:2017_2018:s2:td:engin.png?200|}} | ||
Line 16: | Line 23: | ||
** En Java** | ** En Java** | ||
<code java> | <code java> | ||
- | public class Engin { | + | public class Engine { |
} | } | ||
</code> | </code> | ||
Line 22: | Line 29: | ||
** En C#** | ** En C#** | ||
<code c#> | <code c#> | ||
- | public class Engin { | + | public class Engine { |
}; | }; | ||
</code> | </code> | ||
Line 29: | Line 36: | ||
<code php> | <code php> | ||
<?php | <?php | ||
- | public class Engin { | + | public class Engine { |
} | } | ||
?> | ?> | ||
Line 37: | Line 44: | ||
On crée une instance d'engin en java par le code suivant : | On crée une instance d'engin en java par le code suivant : | ||
<code> | <code> | ||
- | Engin defiance = new Engin(); | + | Engine defiance = new Engine(); |
</code> | </code> | ||
On crée un autre engin par : | On crée un autre engin par : | ||
<code> | <code> | ||
- | Engin xwing = new Engin(); | + | Engine xwing = new Engine(); |
</code> | </code> | ||
Line 90: | Line 97: | ||
private int power; | private int power; | ||
+ | //Accesseur en lecture : on lit la valeur de l'attribut power | ||
public int getPower() { | public int getPower() { | ||
return power; | return power; | ||
} | } | ||
+ | |||
+ | //Accesseur en écriture : on modifie la valeur de l'attribut power (noté this.power) avec la valeur en parametre power | ||
public void setPower(int power) { | public void setPower(int power) { | ||
this.power = power; | this.power = power; | ||
Line 125: | Line 134: | ||
**Code généré en java** | **Code généré en java** | ||
<code java> | <code java> | ||
- | public class Engin { | + | public class Engine { |
private int power; | private int power; | ||
Line 140: | Line 149: | ||
* @author blay | * @author blay | ||
*/ | */ | ||
- | class Engin { | + | class Engine { |
/** | /** | ||
* @AttributeType int | * @AttributeType int | ||
Line 159: | Line 168: | ||
<code java> | <code java> | ||
- | public class Engin { | + | public class Engine { |
private int power; | private int power; | ||
Line 195: | Line 204: | ||
</code> | </code> | ||
==== Je sais passer du dessin d'une association au code ==== | ==== Je sais passer du dessin d'une association au code ==== | ||
+ | {{: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|}} | ||
Line 204: | Line 213: | ||
private int power; | private int power; | ||
- | //Association becomes un attribute ; multiplicity * => array or any collections | + | //Association becomes an attribute ; multiplicity * => array or any collections |
- | private Pilot[] pilots = new Pilot[0]; | + | private Pilot[] pilots; // = new Pilot[0]; //array de dimension 1 |
Line 280: | Line 289: | ||
//Get the pilots of defiance | //Get the pilots of defiance | ||
- | Pilot[] pilots = defiance.getPilots(); | + | Pilot[] ourPilots = defiance.getPilots(); |
//Print the first pilot (only object reference) | //Print the first pilot (only object reference) | ||
- | System.out.println("Pilot : " + pilots[0]); | + | System.out.println("Pilot : " + ourPilots[0]); |
} | } | ||
Line 417: | Line 426: | ||
+ | /* | ||
=== et encore === | === et encore === | ||
Line 423: | Line 432: | ||
- Quel code correspond au diagramme de classe UML ci dessus ? | - Quel code correspond au diagramme de classe UML ci dessus ? | ||
+ | */ | ||
===== Je sais passer du dessin d'une relation d'héritage au code ==== | ===== Je sais passer du dessin 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:weapons.png?400|}} | {{:2017_2018:s2:td:weapons.png?400|}} | ||
Line 478: | Line 487: | ||
*/ | */ | ||
+ | {{:2017_2018:s2:td:star-wars-armada-2400x1200-259395126765.jpg?300 |}} | ||
{{:2017_2018:s2:td:spacialship.png?700|}} | {{:2017_2018:s2:td:spacialship.png?700|}} | ||
Line 523: | Line 533: | ||
private int capacity; | private int capacity; | ||
- | DecompressionChamber decompressionChamber; | + | private DecompressionChamber decompressionChamber; |
} | } | ||
Line 537: | Line 547: | ||
===== Du diagramme de séquence au diagramme de classes ===== | ===== Du diagramme de séquence au diagramme de classes ===== | ||
+ | {{ :2017_2018:s2:td:darth-vader-stormtroopers-wide-wallpaper.jpg?300 |}} | ||
Voici un diagramme de séquence, complétez le diagramme de classe pour tenir compte des nouveaux éléments. | Voici un diagramme de séquence, complétez le diagramme de classe pour tenir compte des nouveaux éléments. | ||
{{:2017_2018:s2:td:sequence.png?600|}} | {{:2017_2018:s2:td:sequence.png?600|}} |