-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClub.java
124 lines (106 loc) · 3.92 KB
/
Club.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import java.util.ArrayList;
public class Club {
//Attributs
private ArrayList<Personne> adherents = new ArrayList<Personne>();
private String nomClub;
//Constructeurs
/**
* Constructeur vide
*/
public Club() {}
/**
* Constructeur par copie
*/
public Club(Club c) {
this.nomClub = c.getNomClub();
for (int a = 0; a < c.getAdherents().size(); a += 1) {
//Itère sur chaque adhérent du club copié et détermine sa classe
//pour procéder à la copie adéquate
if (c.getAdherents().get(a) instanceof Etudiant) {
//Appel du constructeur par copie de la classe Etudiant
//On accède à l'instance d'Etudiant grâce à la méthode
//get(int) de la classe ArrayList appliquée à l'ArrayList
//c.adherents renvoyé par la méthode d'accès getAdherents()
//de la classe Club.
Etudiant o = new Etudiant((Etudiant) c.getAdherents().get(a));
this.adherents.add(o);
}
else if (c.getAdherents().get(a) instanceof Salarie) {
Salarie o = new Salarie((Salarie) c.getAdherents().get(a));
this.adherents.add(o);
}
else if (c.getAdherents().get(a) instanceof Personne) {
Personne o = new Personne((Personne) c.getAdherents().get(a));
this.adherents.add(o);
}
}
}
/**
* Constructeur prenant un nom et une ArrayList d'adhérents comme
* paramètre
*/
public Club(String unNomClub, ArrayList<Personne> desAdherents) {
this.nomClub = unNomClub;
this.adherents.addAll(desAdherents);
}
//Methodes
/**
* Methode d'accès à la liste d'adhérents du club instancié.
*/
public ArrayList getAdherents() {
return this.adherents;
}
/**
* Méthode d'accès au nom du club instancié.
*/
public String getNomClub() {
return this.nomClub;
}
/**
* Méthode d'initialisation interactive du club instancié.
*/
public void init() {
this.nomClub = Lire.jString("Veuillez entrer un nom pour le club. ");
//Demande à l'utilisateur et récupère le nom du club
int nbAd = Lire.jint("Veuillez entrer un nombre d'adhérents à affecter. ");
//Demande à l'utilisateur et récupère le nombre d'adhérents à placer dans la
//nouvelle liste
for (int a = 0; a < nbAd; a += 1) {
System.out.println("Si l'adhérent n°" + (a+1) +
" est étudiant entrez 1." +
"\nSi il est salarié, entrez 2." +
"\nSi il n'est ni l'un ni l'autre, tapez 0.");
//Demande du type d'adhérent à ajouter, selon un code de classe
int adType = Lire.jint();
if (adType == 1) {
Etudiant o = new Etudiant();
o.init();
//Délégation de la méthode init de la classe concernée.
this.adherents.add(o);
}
else if (adType == 2) {
Salarie o = new Salarie();
o.init();
this.adherents.add(o);
}
else if (adType == 0) {
Personne o = new Personne();
o.init();
this.adherents.add(o);
}
}
}
/**
* Redéfinition de la méthode toString pour lui faire afficher des
* information pertinentes.
*/
public String toString() {
String adherList = "";
for (int a = 0; a < this.adherents.size(); a += 1) {
//Object o = this.adherents.get(a); TEST
adherList += "\nPersonne n°" + (a+1) + " :\n" + this.adherents.get(a);
}
return "Nom du club : " + this.nomClub +
"\nListe des adherents : " + adherList;
}
}