De corona-crisis heeft ons allemaal een belangrijke vaardigheid geleerd: online shoppen. Je kan het zo gek niet bedenken of het wordt aan huis geleverd. Zelfs je potje chocopasta of je lievelingssnack. Je kiest uit een ruim assortiment producten en voegt ze toe aan een virtueel winkelmandje. En telkens wordt je verleid om meer te kopen want hoe meer hoe goedkoper.
In deze oefening gaan jullie de klasse Winkelmandje
programmeren. Deze klasse verzamelt een aantal instanties van de
klasse Product
.
In BlueJ maak je het project Boldotcom aan. In dit project maak je dan twee klassen aan:
Product.java
: beschrijft een product dat je kan bestellen via Bol.com.Winkelmandje.java
: een instantie van deze klasse houdt de bestelde producten bij in een ArrayList
.Je mag de automatisch gegenereerde code van BlueJ verwijderen.
Hieronder tonen we je de code van de klasse Product
. Deze code kan je ook hier1
downloaden. Bestudeer deze code goed alvorens je ze gebruikt bij het programmeren.
public class Product {
private String beschrijving;
private double prijs;
public Product(String beschrijving, double prijs)
{
this.beschrijving = beschrijving;
this.prijs = prijs;
}
public String getBeschrijving()
{
return beschrijving;
}
public double getPrijs()
{
return prijs;
}
public void print()
{
System.out.println(beschrijving + ": € " + prijs);
}
}
Onderaan de opgave, waar je jouw oplossing moet indienen, vind je al een stukje code dat je mag kopieëren naar de klasse
Winkelmandje
. Je krijgt dus veld, constructor en initialisatie van het enige veld cadeau.
Programmeer in de klasse Winkelmandje
volgende methoden:
void productToevoegen(Product)
Deze methode voegt een product toe aan de ArrayList mandje
.
void productVerwijderen(int)
Deze methode verwijdert een product op een gegeven index uit de ArrayList mandje
. Je bent verplicht om te testen of
de index geldig is.
int aantalProducten()
Deze methode geeft het aantal producten in de ArrayList mandje
terug.
double totalePrijs()
Deze methode berekent de totale prijs van de producten in de ArrayList mandje
. De totale prijs wordt dan teruggegeven.
Product duursteProduct()
Deze methode geeft het product terug met de duurste prijs. Zijn er twee duurste producten, dan is geef je het product
op de kleinste index terug.
void print()
Print één volgende boodschappen af, afhankelijk van het aantal elementen in ArrayList mandje
.
Winkelmandje is leeg
Totaal winkelmandje: € 4.24
Nutella: € 2.35
Twix: € 1.89
boolean isLimietGeldig(double)
Deze methode test of de prijs van elk product kleiner is dan de gegeven limiet. Je werkt met een while-lus.
Product zoekProduct(String)
Deze methode geeft het product met de kleinste index terug waarvan de beschrijving gelijk is aan de gegeven beschrijving.
Indien er geen product gevonden wordt met de gegeven beschrijving, geef dan null
terug. Gebruik een while-lus.