Luokan määrittelyt + konstruktori 5p - muuttujien määrittely 2p * muuttujat ei ole private -1p - konstruktori 3p * muuttajat määritelty konstruktorin sisällä -2p public double pääsäiliössäOn() + public double varastossaOn() 1p public double bensaaOn() 1p public boolean lisääBensaa(double määrä) 5p public double tankkaaBensaa(double määrä) 5p public String toString() 1p /** * Ohjelmoinnin perusteet, Avoin yliopisto kesä 2004 * Koetehtävä 2 (Bensa-asema), esimerkkivastaus. * * @author Olli Jokinen */ public class BensaAsema { private double pääsäiliö, varastosäiliö, pääsäiliönKoko, varastosäiliönKoko; public BensaAsema(double pääsäiliö, double varastosäiliö) { if(pääsäiliö < 0) { pääsäiliö = 5000; } if(varastosäiliö < 0) { varastosäiliö = 5000; } this.pääsäiliönKoko = pääsäiliö; this.varastosäiliönKoko = varastosäiliö; this.pääsäiliö = 0; this.varastosäiliö = 0; } public double pääsäiliössäOn() { return this.pääsäiliö; } public double varastossaOn() { return this.varastosäiliö; } public double bensaaOn() { return this.pääsäiliössäOn() + this.varastossaOn(); } public boolean lisääBensaa(double määrä) { if(määrä < 0) { return false; } if(määrä > (this.pääsäiliönKoko + this.varastosäiliönKoko - this.pääsäiliö - this.varastosäiliö)) { // yritetään lisätä enemmän kuin on kapasiteettia return false; } if(määrä <= (this.pääsäiliönKoko - this.pääsäiliö)) { // kaikki mahtuu pääsäiliöön this.pääsäiliö += määrä; return true; } // bensa ei mahtunut pääsäiliöön, täytetään pääsäiliö ja laitetaan // varastosäiliöön mitä jäi jäljelle this.varastosäiliö += määrä - (this.pääsäiliönKoko - this.pääsäiliö); this.pääsäiliö = this.pääsäiliönKoko; return true; } public double tankkaaBensaa(double määrä) { if(määrä < 0) { return 0; } if(this.pääsäiliö >= määrä) { // saadaan kaikki bensa pääsäiliöstä this.pääsäiliö -= määrä; } else if(this.pääsäiliö + this.varastosäiliö >= määrä){ // pää- ja varastosäiliöstä saadaan riittävästi bensaa this.varastosäiliö -= (määrä - this.pääsäiliö); this.pääsäiliö = 0; } else { // annetaan kaikki mitä voidaan määrä = this.pääsäiliö + this.varastosäiliö; this.pääsäiliö = 0; this.varastosäiliö = 0; } return määrä; } public String toString() { return "Bensa-asema \nPääsäiliö: " + this.pääsäiliö + "/" + this.pääsäiliönKoko + "\nVarastosäiliö: " + this.varastosäiliö + "/" + this.varastosäiliönKoko; } }