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()); } }