- Ohj2, luento 7, 26.2.2005
- Aliohjelmista
- Yleistavoite: pidä pääohjelma mahdollisimman yksinkertaisena, toiminnallisuutta aliohjelmiin!
- Sivuvaikutukset: aliohjelman pääohjelmalle 'näkymättömät' toiminnot (esim. parametrin arvon muutos, resurssien varaukset, I/O-toiminnot)
- Esimerkki: tulostaminen tietovirtaan
- Parametrin välitys
- Aikalisä (+"konekieli")
- swap-esimerkki
- Jos ehtii: alisotku
- testauksesta
- testipääohjelmat - javalla helppoa
- automaattinen testaus komentorivin avulla
- junit-frameworkit (käsitellään myöhemmällä luennolla, jos ehditään)
- Kertaus: Java-kielen merkkijonoista
- Ks. moniste, luku 7.3
- String-luokka on muuttumaton (immutable)
- Esim. lauseke String s = a + "b" merkitsee suurinpiirtein String s = new String(a + new String("b"))
- StringBuffer-luokan olioita voidaan muuttaa
- Esim. lisäys: s.append(t)
- Materiaali
- Muuttujista
- Viitteistä
- Huom. == vs. equals
- perustyypit vs oliomuuttujat
- viitteet käytössä vain olioilla, varaus keosta
- perustyyppien osalta muuttujat konkreettisia, varaus pinosta
- Huom. kääreluokat:
- int on perustyyppi, Integer on olio, joka sisältää int-arvon
- Esim. säiliöluokissa käytettävä oliokäärettä, toisaalta vain perustyypeille on määritelty laskutoimitukset
- Seuraus: tarvitaan muunnoksia (intValue-metodi tai Integerin konstruktori)
- Java 5:ssä "autoboxing", muunnokset läpinäkyviä
- Esimerkkiohjelma: mittakaavan laskeminen