Luokassa on aksessorit:
Toteuta luokka Joulupuurokattila luokan Puurokattila aliluokkana. Joulupuurokattila-luokalla on yksi konstruktori:
Joulupuurokattila-luokassa on omat aksessorit:
Huom: Luokka Puurokattila siis on käytettävissä, älä ihmeessä sitä enää ohjelmoi!
(17 pistettä)
Entä miten L1:n ilmentymä tehdään, jos T1 on rajapintaluokka (interface)? Mihin ihmeeseen rajapintaluokkaa käytetään?
(19 pistettä)
Rivejä luetaan ilmentymämetodilla public String lueRivi(). Kun tiedosto on loppunut, metodi palauttaa null-arvon.
Poikkeuksiin ei ole varauduttu tässä luokassa! Konstruktorin ja aksessorin kutsuja joutuu siis itse käsittelemään poikkeukset.
Määritellään, että "sana" tarkoittaa tässä tehtävässä mitä tahansa merkkien jonoa, jonka erottaa muista merkeistä välilyönti, rivinvaihto tai jokin niiden yhdistelmä. Sana ei siis voi sisältää välilyöntiä tai rivinvaihtoa.
Poikkeukset käsitellään luokassa Sanatiedosto siten, että sen ilmentymien käyttäjän ei tarvitse kantaa niistä huolta: Jos Syottotiedosto-olion luonti epäonnistui, lueSana()-metodi palauttaa alusta alkaen null-arvoja. Jos lueRivi()-metodin suoritus joskus johtaa poikkeukseen, lueSana()-metodi alkaa palauttaa null-arvoja.
Sanatiedosto-olion käyttäjälle siis alunperin rikkinäinen tai kokonaan puuttuva tiedosto näyttää tyhjältä tiedostolta. Kesken kaiken rikkoutuva tiedosto näyttää vain loppuvan.
Huom: Riittää että Sanatiedosto käsittelee Syottotiedoston aiheuttaman poikkeuksen kaikkein yleisimmällä tasolla, Exception-poikkeuksena.
Huom: Luokka Syottotiedosto siis on käytettävissä, älä ihmeessä sitä enää ohjelmoi!
(17 pistettä)