demo
Class Astia

java.lang.Object
  extended by demo.Astia

public class Astia
extends java.lang.Object

John McLane (Bruce Willis) joutui elokuvassa Die Hard 3 ongelman eteen, jossa piti kahdella vesikanisterilla mitata jonkin muun suuruinen vesimäärä "tarkasti" ja näin estää pommin räjähtäminen. Koska aika meni varsin tiukalle, on vastaavien tilanteiden harjoittelemiseksi nyt tehty uusi menestysohjelma "Astia".
Pelillä demonstroidaan/harjoitellaan miten voidaan kahdella astialla, 5 l ja 8 l, muodostaa kaikki mahdolliset tilavuudet 1-13 l. Pelissä on kaksi varsinaista astiaa: a5 ja a8, sekä kolmas apuastia ampari. Nestettä voidaan kerrallaan kaataa yhdestä astiasta toiseen joko siten, että astian koko sisältö tyhjennetään jos se mahtuu tai astista kaadetaan sen verran että toinen astia tulee täyteen.
Tee ohjelma jota voitasiin käyttää seuraavasti:

  Käytössäsi on 8 ja 5 litran astia ja Ämpäri (100 l)

  8 litran astiassa on 0 litraa
  5 litran astiassa on 0 litraa
  Mistä kaadetaan ja mihin >ä 8[ret]
  8 litran astiassa on 8 litraa
  5 litran astiassa on 0 litraa
  Mistä kaadetaan ja mihin >8 5[ret]
  8 litran astiassa on 3 litraa
  5 litran astiassa on 5 litraa
  Mistä kaadetaan ja mihin >5 ä[ret]
  8 litran astiassa on 3 litraa
  5 litran astiassa on 0 litraa
  Mistä kaadetaan ja mihin >8 5[ret]
  8 litran astiassa on 0 litraa
  5 litran astiassa on 3 litraa
  Mistä kaadetaan ja mihin >[ret]

Version:
1.0, 09.02.2003
Author:
Vesa Lappalainen

Field Summary
private  double maara
           
private  java.lang.String nimi
           
private  double tilavuus
           
 
Constructor Summary
Astia(java.lang.String nimi, double tilavuus)
          Alustaa uuden astian tietyn kokoiseksi ja luonnollisetsi tyhjäksi
 
Method Summary
 double getMaara()
          Palautetaan nsteen määrä astiassa
 java.lang.String getNimi()
          Palautetaan astian nimi
 double getTilavuus()
          Palautetaan astion tilavuus
 double getTyhjaa()
          Palautetaan astiossa olevan vapaan tilan määrä.
 void kaada(Astia astia)
          Kaataa tästä astiasta (this) toiseen astiaan niin paljon kuin toiseen mahtuu tai tästä astiasta on antaa.
 void kaada(double lisa)
          Kaataa astiaan joko lisää tai vähentää, yli ei saa mennä eikä pakkasen puolelle
static void main(java.lang.String[] args)
          Testaan astioita
 boolean oletko(java.lang.String mika)
          Tutkitaan onko astian nimi etsitty
 void tayta()
          Täyttää astian piripintaan asti
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nimi

private final java.lang.String nimi

tilavuus

private final double tilavuus

maara

private double maara
Constructor Detail

Astia

public Astia(java.lang.String nimi,
             double tilavuus)
Alustaa uuden astian tietyn kokoiseksi ja luonnollisetsi tyhjäksi

Parameters:
nimi - uuden astian nimi
tilavuus - uuden astian tilavuus
Method Detail

tayta

public void tayta()
Täyttää astian piripintaan asti


kaada

public void kaada(double lisa)
Kaataa astiaan joko lisää tai vähentää, yli ei saa mennä eikä pakkasen puolelle

Parameters:
lisa - astiaan laitettava tai otettava nestemäärä
Example:
 Astia astia5l = new Astia("5l",5);
 astia5l.getTyhjaa() ~~~ 5.0;  
 astia5l.kaada(3.0);
 astia5l.getMaara() ~~~ 3.0;    astia5l.getTyhjaa() ~~~ 2.0;  
 astia5l.kaada(3.0);
 astia5l.getMaara() ~~~ 5.0;    astia5l.getTyhjaa() ~~~ 0.0;  
 astia5l.kaada(-2.0);
 astia5l.getMaara() ~~~ 3.0;    astia5l.getTyhjaa() ~~~ 2.0;  
 astia5l.kaada(-2.0);
 astia5l.getMaara() ~~~ 1.0;    astia5l.getTyhjaa() ~~~ 4.0;  
 astia5l.kaada(-2.0);
 astia5l.getMaara() ~~~ 0.0;    astia5l.getTyhjaa() ~~~ 5.0;  
 

kaada

public void kaada(Astia astia)
Kaataa tästä astiasta (this) toiseen astiaan niin paljon kuin toiseen mahtuu tai tästä astiasta on antaa.

Parameters:
astia - astia johon kaadetaan
Example:
 Astia astia5l = new Astia("5l",5);  
 Astia astia8l = new Astia("8l",8);
 Astia ampari  = new Astia("Ämpäri",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;  
 

getMaara

public double getMaara()
Palautetaan nsteen määrä astiassa

Returns:
nesteen määrä

getTilavuus

public double getTilavuus()
Palautetaan astion tilavuus

Returns:
astian tilavuus

getTyhjaa

public double getTyhjaa()
Palautetaan astiossa olevan vapaan tilan määrä.

Returns:
vapaan tilan määrä.

getNimi

public java.lang.String getNimi()
Palautetaan astian nimi

Returns:
astian nimi

oletko

public boolean oletko(java.lang.String mika)
Tutkitaan onko astian nimi etsitty

Parameters:
mika - verrattava nimi
Returns:
true jos on samat, false muuten
Example:
 Astia ampari  = new Astia("Ämpäri",100);
 ampari.oletko("Ä") === false;
 ampari.oletko("ämpäri") === true;
 ampari.oletko("ÄMPÄRI") === true;
   
 

main

public static void main(java.lang.String[] args)
Testaan astioita

Parameters:
args -