Tenttiarkisto: TKOPA14 - Olio-ohjelmoinnin perusteet

 

5.3.2008

1. Vastaa seuraaviin Java-kieltä koskeviin kysymyksiin ja väittämiin valitsemalla oikea vaihtoehto, joita on jokaisessa kohdassa vain yksi kappale. Kirjoita vastauksesi selkeästi vastauspaperille. Jokaisesta oikeasta vastauksesta saa 1 pistettä ja jokaisesta väärästä vastauksesta -1 pistettä. Jokaisesta vastaamatta jääneestä kohdasta saa 0 pistettä. Tehtävän minimipistemäärä on 0.

a) Periytyvätkö rakentajat?

(1) kyllä (2) ei

b) Voiko rajapinta sisältää metodin rungon?

(1) kyllä (2) ei

c) String a = new String("O"); String b = new String("N"); String c = new String("E"); String d = a; a = b; b = d; d = c; System.out.println(a + b + c);

Oletetaan yllä olevat lauseet suoritetuiksi. Näytölle tulostui

(1)EON (2) NOE (3) NON (4) ONO (5) NEO (6) ONE

d) Onko lauseessa: Object str = new String("ABC"); staattinen luokka

(1) Object (2) String

e) Periytyminen ilmaistaan avainsanalla

(1) inherts (2) expands (3) enables (4) extends (5) exports

f) Suoritetaan seuraavat lauseet: OopeJono jono = new OopeJono(3); jono.lisaa("A"); jono.lisaa("B"); jono.lisaa("C"); jono.poista(); jono.keula(); jono.lisaa("D"); System.out.println(jono.keula());

Näytölle tulostui?

(1) A (2) B (3) C (4) D

2. Kirjoita Java-kielellä kapseloitu Lasi-luokka, jolla on attribuutit tilavuus (tyyppiä double, taytto (tyyppiä double) ja optimistin (tyyppiä boolean). Tilavuus on aina suurempi tai yhtä suuri kuin nolla senttilitraa. Luokalla on metodit lasin tyhjentämiseen ja täyttämiseen. Lasista poistettavan ja lisättävän nesteen määrä annetaan näille metodeille parametrina. Lasia voi täyttää vain sen tilavuuden verran eikä lasia voi tyhjentää sen täyttöä enempää. Jos parametri on virheellinen, niin näytölle tulostetaan "Ei onnistu!" ja lasin täyttöä ei muuteta.

Lasilla on myös metodi lasin tilan raportoimiseen. Jos lasissa on juotavaa vielä puolet lasin tilavuudesta tai enemmän, niin näytölle tulostetaan "Paljon!". Jos juotavaa on vähemmän kuin puolet tilavuudesta, niin optimistin omistama lasi sanoo "Hyvin vielä!", kun taas pessimistille kuuluva lasi toteaa "Kohta lopussa!".

Kirjoita Lasi-luokalle oletusrakentaja, jossa tehdään 30 senttilitran vetoinen tyhjä lasi, joka kuuluu optimistille. Kirjoita myös parametrillinen rakentaja, jossa attribuuttien arvoiksi asetetaan rakentajan parametrit. Jos parametrien arvoissa on virhe, niin attribuuteille annetaan samat arvot kuin parametrittomassa rakentajassa.

Testaa Lasi-luokkaa erillisessä testiluokassa.

3. Kirjoita abstrakti Humanoidi-luokka, jolla on long-tyyppinen attribuutti humanoidin varallisuudelle ja boolean-tyyppinen attribuutti, jonka arvo on true, jos humanoidi on aseistettu. Muista kapseloida tämäkin luokka. Kirjoita luokalle parametrillinen rakentaja. (Oletusrakentajaa ei tarvita.) Luokalla on myös abstrakti tervehdi-metodi. Metodin tyyppi on void eikä sillä ole parametreja.

Peri humanoidi-luokasta konkreettinen Rohmu-luokka. Rohmut pelaavat paljon ja näin ollen jokaisella rohmulla on jonkin verran pelivelkaa (int). Kapseloi luokka ja kirjoita luokalle rakentaja, jolla on kolme parametria. Toteuta tervehdi-metodi siten, että se tulostaa tekstin "bjavt!".

Erillistä testiluokkaa ei tarvita.

4. Toteuta Lista-luokan lisaaAlkuun-metodi. Alla oletustoteutus:

/** Lisää uuden solmun linkitetyn listan alkuun.
*
* @param alkio lisättävä tieto.
*/
public void lisaaAlkuun(Object alkio) { ; }

Pelkkä metodin toteutus riittää: Lista-luokan muita osia ei tarvitse kirjoittaa näkyviin, eikä erillistä testiluokkaa tarvita

Liitteessä 1 on annettu Solmu-luokka ja joitakin Lista-luokan osia. Liite1

LiiteKoko
oope1_liite.html3.79 Kt

Uudet käyttäjät

  • ApinaSalaatti
  • ailin
  • Wiljam
  • Orbitum
  • Lari

Paikalla olevia

0 käyttäjää ja 1 vieras.