-
Notifications
You must be signed in to change notification settings - Fork 0
/
Persoon.java
270 lines (249 loc) · 7.11 KB
/
Persoon.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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
/**
* Klasse Persoon
* In deze klasse worden alle gegevens van personen bijgehouden etc.
* @author Rutger Roffel & Patrick Swijgman
* @version 1.0
*/
public class Persoon
{
/**
* Velden:
* Defineer de velden voor een persoon
*/
private int bsn; // Bsn van persoon
private String voornaam; // Voornaam van persoon
private String achternaam; // Achternaam van persoon
private int geboorteDag; // Geboortedag van persoon
private int geboorteMaand; // Geboortemaand van persoon
private int geboorteJaar; // Geboortejaar van persoon
private char geslacht; // Geslacht van persoon (m/v)
private Dienblad dienblad; // Dienblad van de persoon
private Betaalwijze betaalwijze; // Hoe wil dit persoon betalen?
/**
* Constructor:
* Initialiseer de velden voor een persoon
* @params bsn, voornaam, achternaam, geboorteDag, geboorteMaand, geboorteJaar, geslacht
*/
public Persoon(int bsn, String voornaam, String achternaam, int geboorteDag, int geboorteMaand, int geboorteJaar, char geslacht)
{
setBsn(bsn);
setVoornaam(voornaam);
setAchternaam(achternaam);
setGeslacht(geslacht);
setGeboortedatum(geboorteDag, geboorteMaand, geboorteJaar);
}
/**
* Constructor:
* Deze constructor heeft geen parameters
*/
public Persoon()
{
setGeslacht('o');
setGeboortedatum(0,0,0);
}
/**
* Methode:
* Return het BSN nummer van een persoon
* @return bsn
*/
public int getBsn(){
return bsn;
}
/**
* Methode:
* Return de voornaam van een persoon
* @return voornaam
*/
public String getVoornaam(){
return voornaam;
}
/**
* Methode:
* Return de achternaam van een persoon
* @return achternaam
*/
public String getAchternaam(){
return achternaam;
}
/**
* Methode:
* Return de geboortedatum van een persoon
* (dd/mm/yyyy)
* @return temp
*/
public String getGeboortedatum()
{
String temp;
if (geboorteDag==0 || geboorteMaand==0 || geboorteJaar==0)
{
temp="Onbekend";
}
else
{
temp = geboorteDag+ "/" +geboorteMaand+ "/" +geboorteJaar;
}
return temp;
}
/**
* Methode:
* Return het geslacht van een persoon
* ('man'/'vrouw')
* @return String geslacht;
*/
public String getGeslacht(){
if(geslacht == 'm')
{
return "man";
}
else if(geslacht == 'v')
{
return "vrouw";
}
else
{
return "onbekend";
}
}
/**
* Methode:
* Return de betaalwijze van een persoon
* @return Betaalwijze betaalwijze;
*/
public Betaalwijze getBetaalwijze(){
return betaalwijze;
}
/**
* Methode:
* set de betaalwijze van een persoon
* @param betaalwijze
*/
public void setBetaalwijze(Betaalwijze betaalwijze){
this.betaalwijze = betaalwijze;
}
/**
* Methode:
* Defineer een nieuw BSN nummer voor een persoon
* @param bsn
*/
public void setBsn(int bsn){
this.bsn = bsn;
}
/**
* Methode:
* Defineer een nieuwe voornaam voor een persoon
*/
public void setVoornaam(String voornaam){
this.voornaam = voornaam;
}
/**
* Methode:
* Defineer een nieuwe achternaam voor een persoon
* @params achternaam
*/
public void setAchternaam(String achternaam){
this.achternaam = achternaam;
}
/**
* Methode:
* Defineer een nieuwe geboortedatum voor een persoon
* (dd/mm/yyyy)
* @params dag, maand, jaar
*/
public void setGeboortedatum(int geboorteDag, int geboorteMaand, int geboorteJaar){
if(geboorteMaand >= 1 && geboorteMaand <= 12)
{
int daylimit = 0;
if(geboorteMaand == 1 || geboorteMaand == 3 || geboorteMaand == 5 || geboorteMaand == 7 || geboorteMaand == 8 || geboorteMaand == 10 || geboorteMaand == 12)
{
daylimit = 31;
}
else if(geboorteMaand == 2)
{
//SchrikkelgeboorteJaar berekenen voor februari
if ((geboorteJaar % 400) == 0)
{
daylimit = 29;
}
else
{
daylimit = 28;
}
}
else
{
daylimit = 30;
}
if(geboorteDag >= 1 && geboorteDag <= daylimit)
{
this.geboorteDag = geboorteDag;
}
else
{
this.geboorteDag = 0;
System.out.println("De ingevulde geboorteDag heeft een onjuiste waarde!");
}
this.geboorteMaand = geboorteMaand;
}
else
{
this.geboorteMaand = 0;
System.out.println("De ingevulde geboorteMaand heeft een onjuiste waarde!");
}
if(geboorteJaar >= 1900 && geboorteJaar <= 2100)
{
this.geboorteJaar = geboorteJaar;
}
else
{
this.geboorteJaar = 0;
System.out.println("De ingevulde geboorteJaar heeft een onjuiste waarde!");
}
}
/**
* Methode:
* Defineer een ander geslacht voor een persoon
* ('m'/'v')
* @params newGeslacht
*/
public void setGeslacht(char geslacht){
if(geslacht == 'm' || geslacht == 'v' || geslacht == 'M' || geslacht == 'V')
{
this.geslacht = Character.toLowerCase(geslacht);
}
else
{
System.out.println("De waarde "+ this.geslacht +" is geen juiste waarde voor het systeem");
}
}
/**
* Overschrijven van toString methode
* @return de gegevens zien van een persoon
*/
public String toString()
{
return "Naam: "+ getVoornaam() + " " + getAchternaam() + "\nBSN: "+ getBsn()+ "\nGeboortedatum: "+ getGeboortedatum()+"\nGeslacht: "+ getGeslacht();
}
/**
* Methode om dienblad te koppelen aan een persoon
* Als het persoon geen dienblad heeft maakt dan een nieuwe aan.
* @param dienblad
*/
public void pakDienblad(Dienblad dienblad)
{
this.dienblad = dienblad;
}
/**
* Methode om een artikel op een dienblad te zetten.
* @param artikel
*/
public Dienblad getDienblad(){
return dienblad;
}
@Override public boolean equals(Object object){
if (object instanceof Persoon)
{
return true;
}
return false;
}
}