Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Counter-klassenForklaring
Code Block
languagejava
public class Counter {
	int end;
	int counter = 0;


	Counter(int end) {
		this.end = end;
	}

	int getCounter() {
		return counter;
	}

	void count() {
		if (counter < end) {
			counter = counter + 1;
		}
	}
 }

Counter-klassen deklarerer felt for den øvre grensa og telleren.

Den øvre grensa initialiseres av konstruktøren.

Telleren kan lese (utenifra) med getCounter()-metoden.

count()-metoden brukes til å telle opp ett trinn, men dette skjer bare hvis den øvre grensa ikke alllerede er nådd.

Figuren under viser hva som skjer når en teller fra 0 og oppover og den øvre grensa er 3.

PlantUML Macro
object "~#1: Counter" as counter0 {
	end = 3
	counter = 0
}
object "~#1: Counter" as counter1 {
	end = 3
	counter = 1
}
counter0 -> counter1: count()
 
object "~#1: Counter" as counter2 {
	end = 3
	counter = 2
}
counter1 -> counter2: count()

object "~#1: Counter" as counter3 {
	end = 3
	counter = 3
}
counter2 -> counter3: count()
counter3 -> counter3: count()

Vi ser at det samme objektet (samme #id) endrer tilstand ved at telleren øker, inntil telleren er lik den øvre grensa.

Tanken er nå å lage en app som lar oss opprette og initialisere, lese og endre tilstanden til et Counter-objekt. Vi skal starte med en enkel variant, som lar oss lese og endre tilstanden til et forhåndsopprettet Counter-objekt, og så utvider vi den til å støtte å lage nye Counter-objekter. GUI for de to variantene er vist under:

Counter-GUI 1Counter-GUI 2
Image AddedImage Added