(15 pistettä)
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 (14 pistettä)
a) public abstract class Sisuskalu { public void teeSitäsunTätä(); } b) public interface Sisuskalu { public void teeSitäsunTätä(); } (10 pistettä)
Kokonaislukusuodatin-olion avulla tekstitiedostosta voidaan lukea sieltä löytyvät kokonaisluvut siten että kaikki mahdolliset muut merkit jätetään huomiotta, vain ohitetaan. (Kokonaisluvuksi tulkitaan mikä tahansa yhtenäinen numerojono, etumerkkejä ei oteta huomioon.)
Tiedoston luvut luetaan aksessorilla public int lueSeuraavaLuku(), joka palauttaa arvonaan tiedostosta löytyvän seuraavan kokonaisluvun. Kun tiedostossa ei ole enää kokonaislukuja, metodi palauttaa arvon -1.
Poikkeukset pitää käsitellä luokassa Kokonaislukusuodatin siten, että sen ilmentymien käyttäjän ei tarvitse kantaa niistä huolta: Jos Syottotiedosto-olion luonti epäonnistui, lueSeuraavaLuku()-metodi palauttaa alusta alkaen -1. Jos lueRivi()-metodin suoritus johtaa poikkeukseen, lueSeuraavaLuku()-metodi palauttaa arvon -1. Kokonaislukusuodatin-olion käyttäjälle siis alunperin rikkinäinen tai kokonaan puuttuva tiedosto näyttää tiedostolta, jossa ei ole lainkaan kokonaislukuja Kesken kaiken rikkoutuva tiedosto näyttää vain loppuvan.
Huom: Riittää että Kokonaislukusuodatin käsittelee Syottotiedoston aiheuttamat poikkeukset kaikkein yleisimmällä tasolla, Exception-poikkeuksena.
Huom: Jos osaat, saat käyttää metodia Integer.parseInt(String m).
asdf10 asd4 ö2xcv?+das-9asd,ohjelma tulostaa keskiarvon 6.25.
Huom: Luokka Syottotiedosto siis on käytettävissä, älä ihmeessä sitä enää ohjelmoi!
(14 pistettä)