Helsingin yliopisto / Tietojenkäsittelytieteen laitos / Java-ohjelmointi / Copyright © 1999 Arto Wikla.

581325-0 Java-ohjelmointi, koe 16.12.1999/AW

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi. Kukin tehtävä on 15 pisteen arvoinen. Jokainen vastaus omalle konseptiarkilleen!

  1. Selitä lyhyesti ja täsmällisesti:
         alkeistyyppi (primitive type) - viittaustyyppi (reference type)
         luokan lataaminen - olion luonti
         kuormittaminen (overloading) - korvaaminen (overriding)
    

  2. Käytössäsi on luokka Alkuelain: Mitään muuta Alkuelain-luokasta ei sitten tiedetäkään! Ei tiedetä esimerkiksi perimätaulukon kokoa tai sisällön merkitystä (taulukon koko on kuitenkin aina vähintään yksi). 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:

  3. Ohjelmointitaitoinen ystäväsi ei ole ymmärtänyt kaikkia Javan hienouksia. Vastaa hänen seuraaviin kysymyksiinsä. (Vastauksen arvioinnissa otetaan huomioon selostuksen ajateltu lukija. Älä siis kirjoita tarkastajalle, joka jo osaa asian, kirjoita tuolle ystävälle!)

  4. Käytössäsi on tekstitiedostojen lukemiseen luokka Syottotiedosto. Luokalla on konstruktori Syottotiedosto(String nimi). Parametrina annetaan tiedoston nimi.

    Rivejä luetaan metodilla

      public String lueRivi()
    
    Tiedoston loppuminen ilmaistaan null-arvolla.

    Syottotiedosto-olion luonti ja metodin kutsu voivat aiheuttaa poikkeuksen Exception.

    Laadi ohjelma EroavatRivit kahden tiedoston vertailemiseen. Vertailtavien tiedostojen nimet annetaan ohjelmalle komentoriviparametreina. Ohjelma vertailee tiedostoja riveittäin ja tulostaa kuvaruudulle kaikki rivit, jotka poikkeavat toisistaan. Tulostusasu on seuraava:

    1>kissa kävelee<
    2>katti kävelee<
    1>1235123<
    2>1234123<
    1>abc<
    2>abc  <
    2>  olipa<
    2>toinen  <
    2>pidempi!<
    
    Toisistaan eroavat rivit siis tulostetaan joko merkkien "1>" ja "<" tai "2>" ja "<" väliin riippuen siitä, onko rivi kotoisin ensimmäisestä vai toisesta tiedostosta. Jos jompi kumpi tiedosto loppuu ennen toista, pidemmän loput rivit tulostetaan. Jos tiedostojen käsittelyssä ei tule poikkeuksia, ohjelma ei tulosta mitään muuta. Erityisesti siis tiedostojen ollessa samanlaiset ohjelma ei tulosta mitään! Jos tiedostonkäsittelyssä aiheutuu poikkeus, ohjelma antaa virheilmoituksen ja lopettaa.

    Esimerkissä tiedostot poikkesivat kolmen rivin kohdalla ja toinen tiedosto näkyy olleen kolme riviä pidempi kuin ensimmäinen.


Onnea kokeeseen & Hauskaa Joulua!