Astia1.java |
1 /** 2 * Luokka ja ohjelma yksinkertaisessa muodossa. 3 * Katso kehitys: Astia.java ja Astia2.java 4 *<br> 5 * Pelillä demonstroidaan/harjoitellaan miten voidaan kahdella astialla, 6 * 5 l ja 8 l, muodostaa kaikki mahdolliset tilavuudet 1-13 l. 7 * Pelissä on kaksi varsinaista astiaa: a5 ja a8, sekä kolmas apuastia 8 * ampari. Nestettä voidaan kerrallaan kaataa yhdestä astiasta toiseen 9 * joko siten, että astian koko sisältö tyhjennetään jos se mahtuu 10 * tai astista kaadetaan sen verran että toinen astia tulee täyteen. 11 * 12 * @author Vesa Lappalainen 13 * @version 1.0, 09.02.2003 14 */ 15 public class Astia1 { 16 private double tilavuus; 17 private double maara; 18 19 /** 20 * Alustaa uuden astian tietyn kokoiseksi ja luonnollisetsi tyhjäksi 21 * @param tilavuus uuden astian tilavuus 22 */ 23 public Astia1(double tilavuus) { this.tilavuus = tilavuus; this.maara = 0; } 24 25 /** 26 * Täyttää astian piripintaan asti 27 */ 28 public void tayta() { maara = tilavuus; } 29 30 /** 31 * Kaataa tästä astiasta (this) toiseen astiaan niin paljon kuin toiseen 32 * mahtuu tai tästä astiasta on antaa. 33 * @param astia astia johon kaadetaan 34 */ 35 public void kaada(Astia1 astia) { 36 double siirrettava = astia.tilavuus - astia.maara; 37 if ( maara < siirrettava ) siirrettava = maara; 38 astia.maara += siirrettava; 39 maara -= siirrettava; 40 } 41 42 public double getMaara() { return maara; } 43 44 public static void main(String[] args) { 45 Astia1 astia5l = new Astia1(5); 46 Astia1 astia8l = new Astia1(8); 47 Astia1 ampari = new Astia1(100); 48 49 ampari.tayta(); 50 51 ampari.kaada(astia8l); 52 astia8l.kaada(astia5l); 53 54 System.out.println("8 litran astiassa on " + astia8l.getMaara() + 55 " litraa nestettä"); 56 } 57 58 } 59 60
Astia1.java |