In een moderne speelkamer, voor groot en klein, staat naast een kast vol bordspellen meestal ook een spelconsole voor het spelen van een videospel. Misschien ook nog een doos of twee Lego maar daar gaat deze oefening niet over.
In deze oefening programmeren we de klasse Speelkamer
, een klasse die objecten van het type Bordspel
of
Videospel
verzamelt in een ArrayList
. Je maakt in BlueJ het project Speelkamer met volgende interface of klassen:
Spel
: de code van interface Spel
kan je hier1 downloaden.Bordspel
: de code van Bordspel
kan je hier2 downloaden.Videospel
: de code van Videospel
kan je hier3 downloaden.Speelkamer
: kopieer alvast de boilerplate-code uit de indiensectie op deze pagina naar jouw project.Bestuderen we eerst interface Spel
:
public interface Spel
{
void gespeeld();
int aantalKeerGespeeld();
void print();
}
Elke klasse die de interface Spel
implementeert, moet 3 methoden implementeren:
void gespeeld()
Deze methode gebruik je om aan te geven dat je het spel gespeeld hebt.
int aantalKeerGespeeld()
Deze methode geeft aan hoeveel keer het spel gespeeld werd.
void print()
Toont informatie over het spel in het Terminalvenster van BlueJ.
Beide klassen implementeren de interface Spel
maar hebben een gedrag dat licht verschillend is. Onderzoek
zelf de verschillen in beide implementaties. Testen is uiteraard de te volgen weg!
Programmeer de klasse Speelkamer
:
Het enige veld is een ArrayList
die objecten van het type Videospel
en Bordspel
verzamelt.
Initialiseer het enige veld in de constructor.
void toevoegen(...)
Voegt een bord- of videospel toe aan de speelkamer of ArrayList
.
... opvragen(int index)
Geeft het bord- of videospel op de gegeven index terug. Op voorhand testen of de index geldig is!
void gespeeld(int index)
Het bord- of videospel op de gegeven index werd gespeeld. Alvorens het
object op de gegeven index op de hoogte te brengen van het spelen, test je
of de index geldig is.
... meestGespeeld()
Geeft het bord- of videospel terug dat het meest gespeeld werd. Bij gelijke stand, geef je het object met
de laagste index in de ArrayList
terug.
void print()
Toont een overzicht van de verzamelde spellen in het Terminalvenster van BlueJ.