581326-3 Java-ohjelmointi, koe 29.6.2005/AW (Avoin yliopisto)

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi. Kokeessa saa käyttää A4-kokoista muistilappua, "lunttilappua".
  1. Selitä ja vertaile lyhyesti mutta täsmällisesti seuraavia asioita:

    1. luokan lataaminen ja olion luonti
    2. luokkametodi ja ilmentymämetodi
    3. yliluokka ja aliluokka
    4. this() ja super()
    5. abstrakti luokka ja rajapintaluokka
                                                         (20 pistettä)
    

  2. [Huom: Tämä tehtävä on yhdeltä osaltaan virheellinen! Alyelaimen pariudu-metodia ei voi toteuttaa annetuin mahdollisuuksin. Alyelaimen arvostelussa pariudu-metodista annetaan täydet (osa-)pisteet kaikille, jotka ovat osanneet laskea pelkän älyn; kaikilta muilta osiltaan tuo metodi saa sisältää ihan mitä tahansa.]

    Käytössäsi on luokka Alkuelain:

    Mitään muuta Alkuelain-luokasta ei sitten tiedetäkään! Ei tiedetä esimerkiksi perimätaulukon kokoa tai sen sisällön merkitystä. Myöskin pariutumisen mekanismi on Alkuelain-luokan salaisuus.

    Älyeläin on alkueläimen kehittyneempi sukulainen. Sillä on alkueläimen ominaisuuksien lisäksi ns. älykkyysosamäärä, joka on jokin kokonaisluku välillä 1-200.

    Ohjelmoi Alyelain luokan Alkuelain aliluokkana:

                                                         (16 pistettä)
    

  3. Käytössäsi on tekstitiedostojen lukemiseen luokka Syottotiedosto. Luokalla on konstruktori Syottotiedosto(String nimi). Parametrina annetaan tiedoston nimi. Rivejä luetaan luokan ilmentymämetodilla
      public String lueRivi()
    
    Tiedoston loppuminen ilmaistaan null-arvolla.

    Käytössäsi on myös tekstitiedostojen kirjoittamisen väline, luokka Tulostiedosto. Luokalla on konstruktori Tulostiedosto(String nimi). Parametrina annetaan tiedoston nimi. Rivejä kirjoitetaan ilmentymämetodilla

      public void kirjoitaRivi(String rivi)
    

    Syottotiedosto-olion luonti ja lueRivi()-metodin kutsu voivat aiheuttaa poikkeuksen Exception. Sen sijaan luokassa Tulostiedosto poikkeuksiin on varauduttu: Virheen sattuessa saadaan asianmukainen ilmoitus ja ohjelman suoritus keskeytyy.

    Laadi ohjelma JaaTiedostoKahtia. Ohjelma kysyy ensin syöttötiedoston ja kahden tulostiedoston nimen. Sen jälkeen ohjelma kirjoittaa syöttötiedoston joka toisen rivin ensimmäiseen tulostiedostoon ja joka toisen toiseen tulostiedostoon. Syöttötiedoston rivit siis kopioidaan vuorotellen tulostiedostoihin.

    Ohjelman pitää siis itse käsitellä syöttötiedoston mahdollisesti aiheuttamat poikkeukset. Tulostiedostoa voi käyttää huolettomammin: se pitää itse huolen poikkeuksista.

                                                         (16 pistettä)
    

Onnea kokeeseen ja hauskaa kesää!