Kaikissa tehtävissä ei ole yhtä oikeaa vastausta -- tärkeää on pohdinta ja yrittäminen. Jos et ole käyttänyt Javaa, voit ohjelmoida tehtäviin vastauksia myös muilla kielillä. Jos ohjelmointitaitosi ovat ruosteessa, harjoittelu on tie onneen. Jos et saa ohjelmiasi toimimaan, voit myös kuvailla sanallisesti niiden toiminnan.
Tarkoitus on, että teet tehtävät etukäteen ennen laskuharjoitustilaisuutta.
class Room {
private int temperature = 0;
int getTemperature() { return temperature; }
void addTemperature(int t) { temperature = temperature + t; }
}
class Thermostat {
private Sensor sensor;
private Heater heaterA;
private Heater heaterB;
Thermostat(Room r) {
sensor = new Sensor(r);
heaterA = new Heater(r);
heaterB = new Heater(r);
}
void stabilizeAt(int degrees) {
int measured = sensor.getReading();
while ( measured < degrees ) {
heaterA.heatTheRoom();
heaterB.heatTheRoom();
measured = sensor.getReading();
}
}
}
class Sensor {
private Room room;
Sensor(Room r) { room = r; }
int getReading() { return room.getTemperature(); }
}
class Heater {
private Room room;
Heater(Room r) { room = r; }
void heatTheRoom() { room.addTemperature(5); }
}
public class Simulator {Kuvaa pääohjelman toiminta sekvenssiokaaviona. Esimerkkikuva olioiden luomisesta löytyy luentomonisteen sivulta 62.
public static void main(String[] args) {
Room r = new Room();
Thermostat t = new Thermostat(r));
t.stabilizeAt(20);
}
}
public class Main {Kuvaa tapahtumat sekvenssikaaviona. Ota mukaan myös luokkien luominen ja luokkien sisäinen toiminta. Jos yhteen kaavioon uhkaa tulla liikaa tavaraa, jaa kaavio useampaan osaan.
public static void main(String[] args) {
Paivamaara paiva = new Paivamaara(23,11);
Lataajalaite rautatietori = new Lataajalaite( paiva );
Lukijalaite ratikka6 = new Lukijalaite( paiva );
Lukijalaite bussi244 = new Lukijalaite( paiva );
Kioski lippuLuukku = new Kioski();
Matkakortti artonKortti = lippuLuukku.ostaMatkakortti("Arto");
Matkakortti matinKortti = lippuLuukku.ostaMatkakortti("Matti");
rautatietori.lataaArvoa(artonKortti, 3);
boolean onnistuiko = ratikka6.ostaLippu(artonKortti, 0);
onnistuiko = bussi244.ostaLippu(artonKortti, 2);
onnistuiko = ratikka6.onkoVoimassa(matinKortti);
}
}