Ohjelmointi I tenttikysymykset 14.4.2000

Arvostelussa kiinnitetään eniten huomiota ratkaisun ideoihin, syntaksiin liittyvien yksityiskohtien merkitys on paljon vähäisempi (joskaan ei merkityksetön). Jos aikapula yllättää ja sinun pitää jättää jotakin kirjoittamatta, pyri siihen, että luokkien määrittelyn kohdalla poisjäävä osa olisi metodien rungot (kirjoita metodeille tuolloin vain otsikot). Kaikista tehtävistä saa 0 -- 6 pistettä.

  1. Selvitä seuraavat olio-ohjelmointiin/Javaan liittyvät asiat lyhyesti muutamalla virkkeellä:
    1. Polymorfismi.
    2. Rajapintaluokka.
    3. static-määre.
    4. final-määre periytymisen yhteydessä.
    5. Ylikuormittaminen.
    6. Muuttuja this.
  2. Tee metodi, joka saa parametrikseen merkkijonon ja palauttaa tuloksenaan int[]-taulukon, jossa on merkkijonossa esiintyvien vokaalien a, e, i, o, u lukumäärä vokaalikohtaisesti. Tee metodi siten, että isot ja pienet vokaalit samaistetaan.
  3. Vertaile Javan taulukoita ja vektoreita. Mitkä ovat Javan taulukon ja vektorin olennaisimmat erot? Yhteneväisyydet?
  4. Luokalla FixedIntQueue esitetään jonoja, joissa voi olla alkioita vain rajallinen määrä. Sisäisesti luokka on toteutettu esittämällä jonon alkiot esiintymämuuttujassa int[] jono. Luokkaan liittyvät vielä esiintymämuuttujat int alku, loppu, joilla kerrotaan, missä osassa taulukkoa jono jonon alkiot ovat. Ensimmäinen alkio on kohdassa jono[alku] ja viimeinen kohdassa jono[loppu]. Aina tilanne on sellainen, että alku pienempi tai yhtäsuuri kuin loppu.

    Tee kyseiseen luokkaan rekursiivinen metodi, jolla käännät jonossa (siis taulukkomuuttujassa jono) olevat alkiot käänteiseen järjestykseen muuttamatta esiintymämuuttujien alku ja loppu arvoja.

  5. Tee luokka, jolla esitetään kaikkien kirjainten esiintymismääriä (jossakin tekstissä). Tee luokkaan luonti- ja havainnointimetodeja sekä metodi, jolla voit muodostaa uuden esiintymismäärää esittävän olion nykyisen määrätiedon ja parametrina annettavan määrätiedon avulla. Tee luokaan myös metodi kaikkien esiintyvien kirjainten yhteismäärän havainnoimiseksi.