Vastaa tehtävät 1, 2 ja 3 erillisille konsepteille. Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, nimi, nimikirjoitus ja opiskelijanumero. Vastaukset palautetaan tehtäväkohtaisiin pinoihin. Vaikka jättäisit johonkin tehtävään vastaamatta, tulee vastauspaperi siinäkin tapauksessa palauttaa.
Answer questions 1, 2 and 3 on to separate sheets. On each sheet write the name of the course, date, your name, your signature and student number. Answers to each question are returned on separate stacks. You have to return a answer sheet for each question with your details, even if you didn't answer to all questions.
Lyhennä metodien nimiä nopeuttaaksesi kirjoittamista: System.out.println();
→ S.o.p();
You can shorten method names for faster writing: System.out.println();
→ S.o.p();
Matit ovat vielä vähän hukassa ohjelmoinnin jatkokurssilla nähtyjen käsitteiden kanssa. Auta heitä selvittämällä seuraavat käsitteet heille muutamalla lauseella. Anna jokaisesta oleellisen kohdan koodiesimerkki, ei siis koko luokkaa tms!
static
Käytössäsi on luokka Kuvio
, jonka API, eli ohjelmointirajapinta, on seuraavanlainen.
public Kuvio(int x, int y)
luo kuvio-olion ja asettaa sen x
ja y
koordinaatit parametrina saaduiksi koordinaateiksi.public int getX()
palauttaa kuvioon liittyvän x
-koordinaatin.public void setX(int x)
asettaa kuvioon liittyvän x
-koordinaatin.public int getY()
palauttaa kuvioon liittyvän y
-koordinaatin.public void setY(int y)
asettaa kuvioon liittyvän y
-koordinaatin.public abstract double pintaAla()
palauttaa kuvion pinta-alan.Ohjelmoi luokalle Kuvio
(ei abstrakti) aliluokka Nelio
, jonka API on seuraavanlainen.
public Nelio(int x, int y, int sivunPituus)
luo uuden Nelio
-olion jonka vasen yläkulma on koordinaateissa (x
, y
).public int getSivunPituus()
palauttaa neliön sivun pituuden. Kaikki sivut ovat saman pituisia!public void siirraKohtaan(int uusiX, int uusiY)
siirtää neliön uuteen sijaintiin.Ohjelmoi luokalle Kuvio
(ei abstrakti) aliluokka Ympyra
, jonka API on seuraavanlainen.
public Ympyra(int x, int y, double sade)
luo uuden Ympyra
-olion jonka keskipiste on koordinaateissa (x
, y
).public double getSade()
palauttaa ympyrän säteen.public double setSade(double sade)
asettaa ympyran säteen.Opintopiste-nimisessä olutravintolassa pidetään kirjaa asiakkaiden juomista oluista. Asiakkaalle näytetään lista saatavilla olevista oluista. Asiakkaalta kysytään nimi ja oluen numero. Tämän jälkeen olutmuistioon lisätään asiakkaan nimelle juodun oluen nimi. Jos asiakas on jo juonut oluen, sitä ei lisätä muistioon. Tämän jälkeen olutmuistiossa asiakkaan juomat oluet näytetään (ei siis kaikkien asiakkaiden!) ja ohjelman kysely alkaa alusta, eli olutlistaus näytetään. Ohjelman suorituksen ei tarvitse päättyä.
Oluet ovat listassa seuraavasti. Tätä ei tarvitse kopioida vastauspaperiin. Merkitse tämän listan sijainti vaikka kommentilla.
ArrayList<String> oluet = new ArrayList<String>(); oluet.add("Arrogant Bastard Ale"); oluet.add("Weihenstephaner Hefe Weizen"); oluet.add("Avery Maharadja Imperial IPA"); oluet.add("Magister Pils");
Esimerkki tulostuksesta, kun ohjelma on jo ollut suorituksessa jonkin aikaa
Opintopiste --------------------- 1. Arrogant Bastard Ale 2. Weihenstephaner Hefe Weizen 3. Avery Maharadja Imperial IPA 4. Magister Pils Nimesi: Matti L Olut: 3 Olutmuistion sisältö --------------------- Matti L - Arrogant Bastard Ale - Avery Maharadja Imperial IPA Opintopiste --------------------- 1. Arrogant Bastard Ale 2. Weihenstephaner Hefe Weizen 3. Avery Maharadja Imperial IPA 4. Magister Pils Nimesi: Arto V Olut: 2 Olutmuistion sisältö --------------------- Arto V - Weihenstephaner Hefe Weizen Opintopiste --------------------- ...
Anna muutaman lauseen korkean tason selitys ohjelman rakenteesta ja toteuta Olutmuistio-ohjelma (koodi paperille).
public HashMap<K,V>()
luo tyhjän HashMap-olion, jossa K-tyyppiset oliot ovat avaimina ja niillä on V-tyyppisiä olioita arvoina.public V put(K key, V value)
tallentaa HashMap-olioon key → value. Palautuva viite V-tyyppiseen olioon on viite vanhaan olioon, joka korvattiin tai null
.public V get(Object key)
palauttaa viitteen V-tyyppiseen olioon, joka liittyy key-avaimeen. Jos avaimella key
ei löydy arvoa, palautetaan arvo null
public boolean containsKey(Object key)
public V remove(Object key)
poistaa avaimen key ja siihen liittyneen arvon. Palauttaa viitteen V-tyyppiseen olioon, joka on poistettu arvo tai null
.public String toString()
palauttaa esityksen HashMap-olion sisällöstä muodossa {key=value, key2=value2}
public ArrayList<T>()
luo uuden ArrayList-olion jossa listan elementit ovat tyyppiä Tpublic boolean contains(Object o)
tarkistaa onko listassa oliota oint get(int i)
palauttaa listan alkion kohdasta i