2013_2014:s2:td:td_classes-code-associations:codes
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2013_2014:s2:td:td_classes-code-associations:codes [2014/03/25 21:37] – [Tests] blay | 2013_2014:s2:td:td_classes-code-associations:codes [2014/04/15 11:44] (current) – [Code] blay | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
+ | <note important> | ||
====== Code et associations " | ====== Code et associations " | ||
Line 94: | Line 94: | ||
{{ : | {{ : | ||
+ | Dans ce modèle, l' | ||
+ | |||
+ | {{ : | ||
==== Code : étape 2 ==== | ==== Code : étape 2 ==== | ||
Line 160: | Line 163: | ||
==== Code ==== | ==== Code ==== | ||
- | Dans la classe **Cours** | + | === Dans la classe **Cours** |
+ | <note warning> | ||
+ | <code java/> | ||
+ | |||
+ | /* Version simple en générant un tableau... à terminer ... */ | ||
+ | public class Cours { | ||
+ | |||
+ | private Vacataire[] vacataires = new Vacataire[0]; | ||
+ | } | ||
+ | </ | ||
+ | ** | ||
+ | Autre solution dans la classe cours ** | ||
+ | |||
+ | Placer bien vos attributs en début de définition de la classe. | ||
+ | <note important> | ||
<code java> | <code java> | ||
- | Collection< | + | ArrayList< |
public void addVacataire(Vacataire v) { | public void addVacataire(Vacataire v) { | ||
Line 196: | Line 213: | ||
</ | </ | ||
+ | <note warning> | ||
<code java> | <code java> | ||
public class Vacataire | public class Vacataire | ||
Line 213: | Line 230: | ||
} | } | ||
</ | </ | ||
- | |||
==== Tests ==== | ==== Tests ==== | ||
Line 389: | Line 405: | ||
</ | </ | ||
+ | ===== Composition ===== | ||
+ | ==== Code ==== | ||
<code java> | <code java> | ||
public | public | ||
Line 427: | Line 445: | ||
</ | </ | ||
+ | Dans la classe Cours | ||
+ | <code java> | ||
+ | |||
+ | / | ||
+ | * Un cours est automatiquement construit avec un TD et un DS avec des valeurs par défaut | ||
+ | * Il faudrait ajouter des méthodes d' | ||
+ | */ | ||
+ | public Cours(String intitule) { | ||
+ | this.intitule = intitule; | ||
+ | td = new TD(" | ||
+ | ds = new DS(" | ||
+ | } | ||
+ | |||
+ | |||
+ | public String toString() { | ||
+ | return "Cours [intitule=" | ||
+ | + ", vacataires=" | ||
+ | + ", etudiants=" | ||
+ | + td | ||
+ | + ds | ||
+ | + " | ||
+ | } | ||
+ | </ | ||
+ | ==== Tests ==== | ||
+ | |||
+ | <code java> | ||
+ | System.out.println(" | ||
+ | |||
+ | Cours cBD = new Cours(" | ||
+ | System.out.println(" | ||
+ | Professeur prof = new Professeur(" | ||
+ | cBD = new Cours(" | ||
+ | System.out.println(" | ||
+ | |||
+ | </ | ||
+ | |||
+ | Dans les codes la méthode coursAssociée n'a pas été définie ni d' | ||
+ | Ici nous avons au niveau des codes orienté la relation. Le modèle devrait être revue pour refléter la réalité des codes. | ||
+ | |||
+ | Dans la figure ci-dessous, nous avons fait le choix de laisser ds visible à la fois comme une association et un attribut pour visualiser la construction interne du DS. Nous aurions pu faire de même pour le TD. Néanmoins, nous déconseillons cette double visualisation d'une même information qui crée de l' | ||
+ | {{ : | ||
+ | |||
+ | |||
+ | ===== Classe d' | ||
+ | |||
+ | ==== Codes ==== | ||
+ | <code java> | ||
+ | public class Enseignant { | ||
+ | |||
+ | String nom; | ||
+ | public Enseignant(String nom) { | ||
+ | this.nom = nom; | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public String toString() { | ||
+ | return " | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | <code java> | ||
+ | public class Description { | ||
+ | private int annee; | ||
+ | private String section; | ||
+ | public Enseignant responsable; | ||
+ | |||
+ | public void setResponsable(Enseignant aResponsable) { | ||
+ | this.responsable = aResponsable; | ||
+ | } | ||
+ | |||
+ | public Enseignant getResponsable() { | ||
+ | return this.responsable; | ||
+ | } | ||
+ | |||
+ | protected int getAnnee() { | ||
+ | return annee; | ||
+ | } | ||
+ | |||
+ | protected void setAnnee(int annee) { | ||
+ | this.annee = annee; | ||
+ | } | ||
+ | |||
+ | protected String getSection() { | ||
+ | return section; | ||
+ | } | ||
+ | |||
+ | protected void setSection(String section) { | ||
+ | this.section = section; | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public String toString() { | ||
+ | return " | ||
+ | + ", responsable=" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | <code java> | ||
+ | public class Module { | ||
+ | |||
+ | | ||
+ | Description[] description = new Description[maxDesc]; | ||
+ | private int numberOfDescr = 0; | ||
+ | |||
+ | public void addDescription(Description aDescription_d) { | ||
+ | if (numberOfDescr==maxDesc) | ||
+ | return; | ||
+ | else { | ||
+ | description[numberOfDescr]=aDescription_d; | ||
+ | numberOfDescr++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public Enseignant getResponsable(int aAnnee, String aSection) { | ||
+ | for (Description d : description) { | ||
+ | if ((d!=null) && (d.getAnnee()==aAnnee) && (d.getSection()==aSection)) | ||
+ | return d.getResponsable(); | ||
+ | } | ||
+ | return null; | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | public String toString() { | ||
+ | return " | ||
+ | + Arrays.toString(description) + ", numberOfDescr=" | ||
+ | + numberOfDescr + " | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Tests ==== | ||
+ | <code java> | ||
+ | Module mUML = new Module(); | ||
+ | Module mJAVA = new Module(); | ||
+ | Description d2014 = new Description(); | ||
+ | d2014.setAnnee(2014); | ||
+ | d2014.setSection(" | ||
+ | Enseignant E1 = new Enseignant(" | ||
+ | d2014.setResponsable(E1); | ||
+ | mUML.addDescription(d2014); | ||
+ | Description e2014 = new Description(); | ||
+ | e2014.setAnnee(2014); | ||
+ | e2014.setSection(" | ||
+ | Enseignant E2 = new Enseignant(" | ||
+ | e2014.setResponsable(E2); | ||
+ | mUML.addDescription(e2014); | ||
+ | System.out.println(mUML); | ||
+ | System.out.println(mJAVA); | ||
+ | |||
+ | System.out.println(mUML.getResponsable(2014, | ||
+ | System.out.println(mUML.getResponsable(2014, | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | System.out.println(mUML.getResponsable(2015, | ||
+ | if (mJAVA.getResponsable(2015, | ||
+ | System.out.println(" | ||
+ | </ |
2013_2014/s2/td/td_classes-code-associations/codes.1395783471.txt.gz · Last modified: 2014/03/25 21:37 by blay