Koetehtävä 1: malliratkaisu ja arvosteluperusteet public class ManiaPankki { private double omat; private double lainatase; public ManiaPankki(double omat, double lainatut){ if (omat < 0) omat = 0; this.omat = omat; this.lainatase = lainatut; } public double getVarat(){ return this.omat; } public double getLainat(){ return this.lainatase; } public double getTase(){ return this.omat + this.lainatase; } public void talletus(double määrä){ if (määrä > 0) this.omat = this.omat + määrä; } public boolean otto(double määrä){ if (määrä < 0 || määrä > this.omat) return false; this.omat = this.omat - määrä; return true; } public boolean lainamuutos(double määrä){ if (this.getTase() < 0 && määrä < 0) //Haetaan lainaa, mutta tase on negatiivinen return false; //---> lainaa ei myönnetä this.lainatase = this.lainatase + määrä; return true; } public String toString(){ return "Omassa säiliössä on rahaa " + this.getVarat() + ", lainatase on " + this.getLainat() + " ja tase on " + this.getTase() +"."; } } public class Testipankki { public static void main(String[] args){ ManiaPankki pankki = new ManiaPankki(100.5, 200); System.out.println(pankki); pankki.talletus(1000); pankki.lainamuutos(-300); System.out.println("Taseesi on " + pankki.getTase()); if (pankki.otto(500)) System.out.println("Otit rahaa 500 euroa!"); else System.out.println("Tililläsi ei ole tarpeeksi rahaa!"); System.out.println(pankki); pankki.otto(600.5); System.out.println("Rahaa on " + pankki.getVarat() + " euroa ja lainaa " + pankki.getLainat() + " euroa."); if (pankki.lainamuutos(-1000)) System.out.println("Pankki ottaa lainaa 1000 euroa!"); else System.out.println("Pankille ei enää anneta lainaa!"); System.out.println(pankki); } } (Seuraavassa vain yleisimmät virheet.) ManiaPankki-luokka: max. 13 pistettä, joista - luokan toimintalogiikka 2 pistettä, joista vähennetään 2, jos muuttujia ei ole määritelty ollenkaan tai niiden tyypit puuttuvat; tai 1, jos muuttujien näkyvyydet puuttuvat tai ne ovat public - konstruktori 2 pistettä, joista vähennetään 2 jos parametreja ei ole asetettu kenttiin; tai 1, jos omat-säiliön ei-negatiivisuutta ei ole tarkistettu (ei-negatiivisuuden huomioon ottamiseen kelpaa mikä tahansa vähänkään järkevä ratkaisu) - getterit yht. 2 pistettä - talletus 2 pistettä, joista vähennetään 1, jos parametrin ei-negatiivisuutta ei ole tarkistettu - otto 2 pistettä, joista vähennetään 1, jos parametrin ei-negatiivisuutta ei ole tarkistettu; ja 1, jos metodi ei palauta oikeaa boolean-arvoa (lausekkeiden logiikka ei toimi); tai 2, jos kentästä ei vähennetä mitään - lainamuutos 2 pistettä, joista vähennetään 1, jos metodi ei palauta oikeaa boolean-arvoa; tai 1, jos taseen negatiivisuus on otettu huomioon mutta parametrin ei - toString 1 piste, jonka menettää, jos metodi ei palauta Stringiä Testipääohjelma: max 3 pistettä, joista vähennetään 1 kustakin seuraavasta virheestä: - oliota ei ole luotu oikein - toStringiä ei käytetä oikein - ohjelmassa ei ole lainkaan tulostuksia ja 2 pistettä kustakin seuraavasta: - oliota ei ole luotu ollenkaan - metodeja ei käytetä olion kautta - pääohjelmassa luodaan olio, mutta ei käytetä sen metodeja