Basiliskon perimä on String-olio. Basiliskot lisääntyvät vain pariutumalla. Lapsi saa jomman kumman vanhempansa perimän sellaisenaan. Todennäköisyys molemmille on yhtä suuri. Perimän arvonnan voi suorittaa lauseella if (Math.random()<0.5) ...
Esimerkki: (juuri näin pitää tulostaa: olion järjestysnumerokin kuuluu siis tulostusasuun, kolmas tulostus voi tietenkin olla joko "(3): Maija" tai "(3): Matti")
Basilisko isä = new Basilisko("Matti"); Basilisko äiti = new Basilisko("Maija"); Basilisko lapsi = isä.pariudu(äiti); System.out.println(isä); // tulostus: (1): Matti System.out.println(äiti); // tulostus: (2): Maija System.out.println(lapsi); // tulostus: (3): Maija TuplaBasilisko äijä = new TuplaBasilisko("Kalle"); // numero 4 TuplaBasilisko ämmä = new TuplaBasilisko("Kaija"); // numero 5 TuplaBasilisko pentu = ämmä.pariudu(äijä); System.out.println(pentu); // tulostus: (6): KaijaKalle
(18 pistettä)
(17 pistettä)
Luokassa Merkkitiedosto ei ole varauduttu poikkeuksiin! Konstruktorin ja aksessorin kutsuja joutuu siis itse käsittelemään poikkeukset!
Rivitiedosto-olion avulla tiedostoa voidaan lukea (tuttuun tapaan) riveittäin. Kukin rivi saadaan siis String-oliona, jossa ei ole mukana merkkitiedostossa esiintyvää rivin loppumerkkiä '\n'.
Rivitiedoston rivit luetaan aksessorilla public String lueRivi(), joka palauttaa arvonaan tiedoston seuraavan rivin.
Kun tiedosto on loppu, lueRivi palauttaa arvon null.
Poikkeukset pitää käsitellä luokassa Rivitiedosto siten, että sen ilmentymien käyttäjän ei tarvitse kantaa niistä huolta: Jos Merkkitiedosto-olion luonti epäonnistui, lueRivi()-metodi palauttaa alusta alkaen arvon null. Jos lueMerkki()-metodin kutsu johtaa poikkeukseen, lueRivi()-metodi palauttaa arvon null. Rivitiedosto-olion käyttäjälle siis alunperin rikkinäinen tai kokonaan puuttuva tiedosto näyttää tiedostolta, jossa ei ole lainkaan rivejä Kesken kaiken rikkoutuva tiedosto näyttää vain loppuvan.
Huom: Riittää että Rivitiedosto käsittelee Merkkitiedoston aiheuttamat poikkeukset vain kaikkein yleisimmällä tasolla, Exception-poikkeuksina.
Huom: Luokka Merkkitiedosto siis on käytettävissä, älä ihmeessä sitä enää ohjelmoi!
(17 pistettä)