Java-ohjelmointi, syksy 2005, koe 12.12.2005 Tehtävän 2 arvosteluperusteet Samuli Kaipiainen, 20.12.2005 (Pisteytyksen perusrunko suoraan Wiklan viimevuotisesta arvostelusta) -- Vastauksen arvioinnissa erityisen tärkeinä kysymyksen kohtina pidettiin seuraavia: * mitä nämä käsitteet tarkoittavat * mihin näitä välineitä voi käyttää * esimerkit ovat välttämättömiä näiden asioiden oppimisessa Pisteytyksen lähtökohta oli seuraava: * 6 pistettä: abstraktin luokan määrittely ja käyttötarkoitus * 6 pistettä: rajapintaluokan määrittely ja käyttötarkoitus (ero abstraktin luokan ja rajapinnan välille) * 6 pistettä: hyvät koodiesimerkit * 1 piste: extra-tsemppaus :) Tarkempi pisteytyshahmotelma... ---------------------------- (Josta tosin helposti poikettiin; yleinen selkeys toi lisää pisteitä ja pisteitä myös siirtyili eri kohtien välillä, asiat piti selittää selkeästi jotta tuo "ystävä" ne ymmärtää :) Abstrakti luokka: - ei toteuta kaikkia metodeitaan 2p * ne on toteutettava sovelluskohtaisesti aliluokissa 2p - ei voida luoda ilmentymää 2p Rajapintaluokka: - kuten abstrakti, mutta ei saa toteuttaa mitään 2p - ei ole osa perintähierarkiaa, voidaan toteuttaa 2p mihin tahansa (yhteen kuulumattomaan) luokkaan - "kokoelma metodeita" tms. "toteutussopimus" 1p - yksi luokka voi toteuttaa monta rajapintaa "moniperintä" 1p - knoppibonuksia: ~1p * implements-määreet eivät periydy * rajapintaluokassa voi olla myös vakioita (public static final) Esimerkit: - abstrakti luokka ja rajapintaluokka 1+1p - abstraktin perintä ja rajapinnan toteutus 1+1p - "polymorfinen" käyttöesimerkki 2p (Elain e = new Kissa(); e.syö() tms.) Huomioita: --------- Tämä tehtävä oli erityisen hyvin "lunttilaputettu" :) Lunttilaputetut vastaukset, jotka sisältivät lähinnä lainauksia kurssimateriaalista, saivat myös yleensä melko hyvät pisteet, ja vain pienen en-mahdollisesti-tajunnut- yhtään-mitä-kirjoitin -miinuksen. Moni selitti ensin abstraktin luokan hyvin pitkästi ja tämän jälkeen lyhyesti rajapintaluokan, kertoen ehkä jonkin eron abstraktiin luokkaan nähden. Tämä oli ihan ok ja antoi hyvät peruspisteet. Käyttöesimerkki, varsinkin tuo polymorfinen sellainen, puuttui monelta. Muutama raukka oli sekoittanut abstraktit luokat private-kapselointiin tai kirjastoluokkiin, niisk. Heille ei paljoa pisteitä herunut.