package olio; /** * Leikitään astioilla * * @author vesal * @version 12.2.2009 */ public class Astia { private String nimi; private double tilavuus = 5; private double maara; /** * Alustaa astin koon * @param nimi astin nimi * @param tilavuus astian tilavuus * @example *
* Astia astia = new Astia(15); * astia.getTilavuus() ~~~ 15; * Astia astia2 = new Astia(-15); * astia2.getTilavuus() ~~~ 0; * **/ public Astia(String nimi,double tilavuus) { this.nimi = nimi; if ( tilavuus >= 0 ) this.tilavuus = tilavuus; maara = 0; } /** * @return astian tilavuus */ public double getTilavuus() { return tilavuus; } /** * Täyttää astian piripintaan * @example *
* Astia astia = new Astia(15); * astia.getMaara() ~~~ 0; * astia.tayta(); * astia.getMaara() ~~~ 15; **/ public void tayta() { maara = tilavuus; } /** * @return palauttaa astian nykyisen nestemäärän * TODO korjaa palauttamaan oikea määrä */ public double getMaara() { return maara; } /** * Astia kaataa itsestään nestettä parametrina tuotuun astiaan * @param astia * @example *
* Astia astia8 = new Astia(8); * Astia astia5 = new Astia(5); * Astia astia10 = new Astia(10); * astia8.kaada(astia5); * astia5.getMaara() ~~~ 0; * astia8.tayta(); * astia8.kaada(astia5); * astia5.getMaara() ~~~ 5; * astia8.getMaara() ~~~ 3; * astia8.kaada(astia10); * astia10.getMaara() ~~~ 3; * astia8.getMaara() ~~~ 0; * astia8.tayta(); * astia8.kaada(astia10); * astia10.getMaara() ~~~ 10; * astia8.getMaara() ~~~ 1; **/ public void kaada(Astia astia) { double siirettava = astia.getTilavuus() - astia.getMaara(); if ( getMaara() > siirettava ) { astia.maara += siirettava; maara -= siirettava; return; } astia.maara += getMaara(); maara = 0; } /** * @param args */ public static void main(String[] args) { /* Astia astia5l = new Astia(5); Astia astia8l = new Astia(8); Astia ampari = new Astia(100); */ Astia astiat[] = { new Astia("ä",100), new Astia("5",5), new Astia("8",8) }; Astia ampari = astiat[0]; ampari.tayta(); System.out.println("Ämpärissä on " + ampari.getMaara() + " litraa nestettä"); ampari.kaada(astiat[2]); astiat[2].kaada(astiat[1]); System.out.println("8 litran astiassa on " + astiat[2].getMaara() + " litraa nestettä"); } }