package olio; /** * * @author vesal * */ public class Astia1 { private double tilavuus; private double maara; /** * Alustaan astian tietykokoiseksi * @param tilavuus alustettava koko */ public Astia1(double tilavuus) { this.tilavuus = tilavuus; this.maara = 0.0; } /** * Täyttää astian */ public void tayta() { maara = tilavuus; } /** * Kaataa itsetään sisältöä astiian kunnes kaikki menny tai astia täynnä * @param astia * @example *
* Astia1 astia5l = new Astia1(5); * Astia1 astia8l = new Astia1(8); * Astia1 ampari = new Astia1(100); * ampari.tayta(); * ampari.kaada(astia8l); * ampari.getMaara() ~~~ 92.0; * astia8l.getMaara() ~~~ 8.0; * astia8l.kaada(astia5l); * astia5l.getMaara() ~~~ 5.0; * astia8l.getMaara() ~~~ 3.0; * astia5l.kaada(ampari); * astia5l.getMaara() ~~~ 0.0; * astia8l.kaada(astia5l); * ampari.kaada(astia8l); * astia8l.kaada(astia5l); * astia8l.getMaara() ~~~ 6.0; * astia8l.getTyhjaa() ~~~ 2.0; **/ public void kaada(Astia1 astia) { double siirrettavaMaara = astia.getTyhjaa(); if ( getMaara() < siirrettavaMaara ) siirrettavaMaara = getMaara(); maara -= siirrettavaMaara; astia.maara += siirrettavaMaara; } /** * Palauttaa astiassa olevan tyhjän tilan määrän * @return tyhjän tilan määrä */ public double getTyhjaa() { return tilavuus - maara; } /** * Palauttaa astiassa olevan litramäärän * @return astian litramäärä */ public double getMaara() { return maara; } /** * Tetstaan Astia-oliota * @param args ei käytössä */ public static void main(String[] args) { Astia1 a5l = new Astia1(5); Astia1 a8l = new Astia1(8); Astia1 ampari = new Astia1(100); ampari.tayta(); ampari.kaada(a8l); a8l.kaada(a5l); System.out.println("Ämprissä on " + ampari.getMaara()); System.out.println("8 litran astiassa on " + a8l.getMaara()); System.out.println("8 litran astiassa tyhjää " + a8l.getTyhjaa()); } }