Eräs viljavarastotyyppi muodostuu
kahdesta viljasiilosta. Vain ensimmäinen siilo on varustettu
lastauslaittein. Viljaa voidaan siirtää siilosta toiseen.
Laadi luokka Viljavarasto viljavaraston toteutukseksi.
(Konstruktori ja aksessorit tulkitsevat negatiiviset parametrien arvot nollaksi)
- public Viljavarasto(double ekaSiilo, double tokaSiilo) luo
viljavaraston, jonka siilojen vetoisuus annetaan parametreina;
siilot ovat aluksi tyhjiä
- public double ekassaOn() palauttaa ensimmäisen siilon viljamäärän
- public double tokassaOn() palauttaa toisen siilon viljamäärän
- public boolean siirraViljaa(double maara, boolean ekasta) siirtää
parametrin verran viljaa siilosta toiseen, jos jälkimmäinen
parametri on true, siirretään ensimmäisestä siilosta toiseen,
muuten päinvastoin; jos koko määrää ei voida siirtää, ei siirretä
mitään; metodi palauttaa arvon true, jos siirto onnistui, false
jos ei onnistunut
- public boolean lisaaViljaa(double maara)
lisää viljaa ensimmäiseen siiloon; jos yritetään lisätä
enemmän kuin mahtuu, viljamäärää ei muuteta; metodi palauttaa arvon
true, jos lisäys onnistui, muuten false
- public double otaViljaa(double maara)
ottaa viljaa ensimmäisestä siiloista; jos pyydetään
enemmän kuin siilossa on, saadaan vain mitä on
- public String toString() palauttaa arvonaan selkeän
merkkijonoesityksen viljavaraston tilasta
Huom: Viljavaraston siilot toteutetaan "omin käsin", ei
Pikkuvarasto-olioina!
(17 pistettä)