| 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 |