Nyt on kiire.... Sain seuraavanlaisen tehtävän:
"Laadi apuväline päivämäärien turvalliseen tallennukseen (virheellisiä päivämääriä ei siis pitäisi pystyä tallentamaan). Peruspalveluiden lisäksi olion tulee osata a) asettaa päivämäärä samaksi kuin parametrina annetun olion päivämäärä (parametrina on siis toinen samasta luokasta luotu olio), b) palauttaa itsestään kopio uutena oliona sekä c) verrata onko parametrina annetun olion päivämäärä sama kuin tähän olioon talletettu päivämäärä!"
Kaikki nerot voitteko jeesata!!!!!!
"Laadi apuväline päivämäärien turvalliseen tallennukseen (virheellisiä päivämääriä ei siis pitäisi pystyä tallentamaan). Peruspalveluiden lisäksi olion tulee osata a) asettaa päivämäärä samaksi kuin parametrina annetun olion päivämäärä (parametrina on siis toinen samasta luokasta luotu olio), b) palauttaa itsestään kopio uutena oliona sekä c) verrata onko parametrina annetun olion päivämäärä sama kuin tähän olioon talletettu päivämäärä!"
Kaikki nerot voitteko jeesata!!!!!!
Vastaukset 3
Vanhimmat
Nyt vaihtui harjoitustehtävän aihe. Käy hakemassa uusi aihe kansliasta. Etkö tullut ajatelleeksi, että myös opettajat lukevat tätä palstaa.
Muista, että päivämäärän virheellisyyteen vaikuttaa myös se, minkä maan kalenterista puhutaan. Päivämäärää 18.2.1753 ei ole koskaan ollut Suomessa (tai siihen aikaan Ruotsissa), mutta Tanskassa on. Varaudu myös kirjoittamaan paljon ehtolauseita selvittääksesi minä vuosina 29.2. on ollut kalenterissa.
Voit aloittaa opiskelun näistä:
http://fi.wikipedia.org/wiki/Juliaaninen_kalenteri
http://fi.wikipedia.org/wiki/Ruotsalainen_kalenteri
http://fi.wikipedia.org/wiki/Gregoriaaninen_kalenteri
Itse lähtisin liikkeelle niin että tekisin tyhjän luokan. Sitten kävisin läpi tehtävänantoa ja kirjoittaisin luokan ominaisuudet kommentteina luokan sisään. Esim. näin:
/** Palauttaa kopion tästä luokasta.
*/
/** Kertoo että onko parametrina annettu päivämäärä sama kuin tämä päivämäärä.
*/
Jne.
Sitten kirjoittaisin noiden kommenttien alle metodit tyhjinä mutta kääntyvinä, ts. skeletoneina, esim.
/** Palauttaa kopion tästä luokasta.
*/
public PVM clone() {
//TODO:
return null;
}
Näin olisi tehtävänanto pilkottu pieniin, helpommin ymmärrettäviin osasiin joihin voisi keskittyä yhteen kerrallaan.
Ennen kuin alkaisin metodin toteutuksia kirjoittamaan tekisin kuitenkin vielä main-metodin johon kirjoittaisin testikoodin jolla voisin sitten varmistaa että kaikki toimii niinkuin pitääkin, esim.
public function main(String[] args) {
PVM pvm=new PVM("2012-12-21");
PVM clone=pvm.clone();
if(clone==pvm) {
System.out.println("Ei toimi, ei.");
}
else {
//....
}
}
jne.
Sitten ajaisin ohjelman jotta näkisin että kaikki testit epäonnistuvat. Sitten kun kaikki tämä olisi tehty niin kirjoittaisin itse toteutuksen metodeihin.