next up previous contents
Next: Laajennettu esimerkki Up: Esimerkki yksinkertaisesta luokasta ja Previous: Ilmaus this   Sisältö

Metodi toString

Kun ohjelmassa käsitellään olioita, on hyvin yleistä, että halutaan tulostaa tietoja jonkun olion tilasta eli siitä, mitkä ovat juuri tämän olion kenttien arvot. Tulostaminen voidaan tehdä, ottamalla kenttien arvot selville olion luokan tarjoamilla metodeilla (esimerkiksi annaLimsojenMaara-metodi LimsaAutomaatti-luokassa). Jos oliolla on paljon kenttiä, tämä on kuitenkin työlästä.

Tämän vuoksi luokkaan kirjoitetaan yleensä metodi toString, joka määritellään siten, että se palauttaa merkkijonon, joka sisältää tietoa käsiteltävän olion tilasta. Esimerkiksi LimsaAutomaatti-luokkaan voidaan määritellä metodi toString seuraavasti:

public String toString() {
  return this.limsojenLkm + " pulloa";
}

Metodi tekee merkkijonon, jossa on käsiteltävän olion limsojenLkm-kentän arvo ja teksti " pulloa". Tämän jälkeen metodi palauttaa arvonaan tämän merkkijonon.

Oliosta toString-metodilla tehty merkkijono voidaan tulostaa antamalla System.out.println-käskylle vain olioon yhdistetyn muuttujan nimi. Esimerkiksi pääohjelmassa voitaisiin tulostaa kahden LimsaAutomaatti-olion tiedot kirjoittamalla

System.out.println(raksanAutom);
System.out.println(sahkonAutom);

Tämä toimii ihan samoin kuin käskyt

System.out.println(raksanAutom.toString());
System.out.println(sahkonAutom.toString());

Kun käskyt suoritetaan, tulostuisi esimerkiksi

4 pulloa
2 pulloa

jos ensimmäisessä LimsaAutomaatti-oliossa limsojenLkm-kentän arvo olisi 4 ja toisessa oliossa 2.

Yllä oleva tulostus voi kuitenkin olla käyttäjälle aika mystinen, koska hän ei välttämättä tiedä lainkaan, mitä ollaan tulostamassa. Tulostettaviin merkkijonoihin voi tulostuskäskyssä lisätä myös muuta tietoa, esimerkiksi

System.out.println("Raksan automaatti: " + raksanAutom);
System.out.println("Sähkön automaatti: " + sahkonAutom);


next up previous contents
Next: Laajennettu esimerkki Up: Esimerkki yksinkertaisesta luokasta ja Previous: Ilmaus this   Sisältö
Kerttu Pollari-Malmi 2003-03-23