Een lift

In deze opgave zul je een lift programmeren. De lift kan omhoog en omlaag bewegen, maar net zoals een echte lift staat er ook een limiet op het aantal personen en het maximale gewicht, om de veiligheid te garanderen.

Opgave

Schrijf een Java-klasse Elevator. Deze klasse stelt een lift voor en moet volgende constructor en minstens volgende methoden bevatten. De lift start initieel op het gelijkvloers (verdieping 0). Je bent volledig vrij om de nodige instantievariabelen te kiezen en het is ook toegelaten (en aangeraden!) om extra methodes toe te voegen, dit kan je helpen bij het zoeken naar fouten.

Constructor

De constructor heeft 4 argumenten:

public Elevator(int minFloor, int maxFloor, int maxPeople, int maxWeight)

Methodes

Je klasse moet minstens onderstaande methoden hebben. Deze zijn gerangschikt in alfabetische volgorde, niet volgens moeilijkheid.

enterPerson()

public void enterPerson(int weight)

Deze methode voegt een persoon met het opgegeven gewicht toe aan de lift. Het gewicht wordt als integer in kg weergegeven.

getCurrentFloor()

public int getCurrentFloor()

Deze methode geeft de huidige verdieping terug waarop de lift zich bevindt.

getCurrentPeople()

public int getCurrentPeople()

Deze methode geeft het huidige aantal mensen terug die zich in de lift bevinden.

getCurrentWeight()

public int getCurrentWeight()

Deze methode geeft het huidige gewicht terug van alle mensen die zich in de lift bevinden.

goDown()

public void goDown(int floors)

Deze methode laat de lift het opgegeven aantal verdiepingen naar beneden bewegen. De lift mag enkel bewegen indien het aantal personen en het gewicht binnen de opgegeven limieten liggen.

goUp()

public void goUp(int floors)

Deze methode laat de lift het opgegeven aantal verdiepingen naar boven bewegen. De lift mag enkel bewegen indien het aantal personen en het gewicht binnen de opgegeven limieten liggen.

leavePerson()

public void leavePerson(int weight)

Deze methode verwijdert een persoon met het opgegeven gewicht uit de lift.

Lokaal testen

Het is aangeraden om je oplossing lokaal uit te proberen en optioneel wat print-statements toe te voegen om je te helpen debuggen. Dit kan je simpelweg doen door aan je klasse een main-methode toe te voegen, net zoals in vorige opgaves.

public class Elevator {
    // Constructor en andere methodes staan hierboven.

    public static void main(String[] args){
        Elevator elevator = new Elevator(-2, 10, 5, 400);
        elevator.goUp(1);
        System.out.println(elevator.getCurrentFloor()); // output: 1
    }
}

Opmerkingen en tips