In deze oefening simuleren we de werking van een kopieertoestel waarmee
je op verschillende papiertypes kan afdrukken. We geven een instantie van de
klasse Kopieertoestel
de mogelijkheid om verscheidene papierlades te beheren.
In de echte wereld hebben kopieertoestellen de mogelijkheid om te kopiëren naar
A3-formaat, A4-formaat enz. In deze oefening gaan we ervan uit dat elke papierlade een
ander papiertype bevat. Er komen geen twee papierlades voor met hetzelfde papiertype. Je
hoeft dit niet te programmeren, want je mag erop vertrouwen dat de gebruiker van je
kopieertoestel dit weet (= slimme gebruiker). Wanneer je denkt lussen nodig te hebben,
zorg je steeds voor de best passende lus in de gegeven context.
In deze oefening programmeren we de klasse Kopieertoestel
, een klasse die
instanties van de klasse Papierlade
verzamelt in een ArrayList
. Je maakt in
BlueJ het project Kopieertoestel met volgende klassen:
Papierlade
: de code van Papierlade
kan je hier1 downloaden.Kopieertoestel
: kopieer alvast de boilerplate-code uit de indiensectie op deze pagina naar jouw project.De klasse Papierlade
krijg je cadeau. In het handboek vind je de API-pagina van
Papierlade
. Een instantie van deze klasse heeft twee velden:
papiertype
: het papiertype van de bladen in de papierlade;aantalBladen
: het aantal bladen in de papierlade.Alvorens je aan de opgave begint, loont het de moeite om de werking van de klasse
Papierlade
te bestuderen. Zo kan de papierlade 64 A4-bladen bevatten of 27 A3-bladen
enz. Let op, instanties van deze klasse kunnen een onbeperkt aantal bladen bevatten.
Bovendien kan het aantal bladen ook negatief worden.
Een instantie van de klasse Kopieertoestel
heeft twee velden:
locatie
: de plaats van het kopieertoestel, bv. secretariaat of receptie,lades
: verwijzingen naar instanties van de klasse Papierlade
. Dit veld
symboliseert de verschillende papierladen van een kopieertoestel.Jouw programmeeropdracht:
void plugInNieuwePapierlade(String)
Deze methode maakt een nieuwe papierlade aan en voegt de papierlade toe aan het
kopieertoestel. De parameter van deze methode maakt het mogelijk om het type papier te
kiezen waarmee de papierlade aangevuld moet worden.
void plugInBestaandePapierlade (Papierlade)
Deze methode voegt de papierlade die je met de parameter meegeeft, toe aan het
kopieertoestel.
void verwijderPapierlade(int)
Deze methode verwijdert de papierlade in de ArrayList lades
op de index die je
via de parameter meegeeft. Let op, controleer of de papierlade bestaat!
void vulPapierlade(int, int)
Deze methode vult het papier bij van de papierlade op de index die met de eerste
parameter wordt meegegeven. Het aantal bladen waarmee je de papierlade aanvult,
vind je in de tweede parameter. Let op, controleer of de papierlade op de gevraagde
index wel degelijk bestaat!
void vulPapierlade(String, int)
Deze methode vult het papier bij van de papierlade met het papiertype dat met
de eerste parameter wordt meegegeven. Het aantal bladen waarmee je de papierlade
aanvult, vind je in de tweede parameter.
void toonBeschikbarePapiertypes()
A4
A3
void kopieer(int, String)
Vandewalle, D.2 (2018). Leren programmeren, een objectgeoriënteerde aanpak, Java in BlueJ3 (2de editie). Acco Uitgeverij4.