581253-6 Java(TM)-ohjelmointi:
loppukoe 8.10.1997/AW
Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen
päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.
Jokainen tehtävä on 12 pisteen arvoinen.
-
Millaisiin käyttötarkoituksiin luokkia (class)
käytetään ohjelmia rakennettaessa? Miten eri tapaukset ohjelmoidaan?
-
Vertaile tiiviin täsmällisesti:
olion luonti - luokan lataaminen
korvaaminen (override) - kuormittaminen (overload)
käännösyksikkö (compilation unit) - pakkaus (package)
-
Tason piste voidaan esittää luokkana
public class Piste {
double x, y;
}
- Määrittely ei ole kovin "olio-ohjelmointihenkinen". Tee luokasta
uusi versio, jossa luokan kentät piilotetaan käyttäjältä ja
tietoja käsitellään aksessoreilla (so. kenttiä tutkitaan ja
muutetaan vain luokan julkisten metodien avulla).
Laadi luokkaan
myös parametriton konstruktori pisteen (0,0) luomiseen ja
konstruktori annetun pisteen (x,y) luomiseen.
- Ohjelmoi aksessoreiden lisäksi luokkaan metodi etäisyys,
joka palauttaa arvonaan pisteen etäisyyden parametrina annettuun
pisteeseen. (Pisteiden (x,y) ja (u,v) etäisyys on neliöjuuri luvusta
(x-u)2+(y-v)2.)
- Ei-tyhjiä merkkijonoja säilövä pino on määritelty abstraktina
luokkana:
abstract public class MjonoPino {
abstract public void push(String jono);
// vie pinon päälle ei-tyhjän merkkijonon
// (Operaatio push ei vie tyhjää merkkijonoa pinoon eikä tee mitään
// muutakaan tyhjällä merkkijonolla.)
abstract public String pop();
// antaa päällimmäisen merkkijonon ja poistaa sen pinosta
// (Jos pino on tyhjä, pop palauttaa tyhjän merkkijonon,
// so. pinon tyhjyys tunnistetaan tästä.)
}
Laadi pinolle taulukkototeutus. Tiedetään, että merkkijonoja ei kuuna
päivänä ole enempää kuin 500. Kaikki toteutuksen yksityiskohdat
on kätkettävä pinon käyttäjältä.
-
Laadi esimerkki rajapintaluokan käyttämisestä parametrivälityksessä.
Selitä myös, mitä hyötyä tästä voi olla.