Versions Compared

Key

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

...

PlantUML Macro
object "~#2:CounterCounter2" as counter1 {
	counter = 1
	end = 3
}
 
object "~#2:CounterCounter2" as counter2 {
	counter = 2
	end = 3
}
counter1 ..> counter2 : count(1)
 
object "~#2:CounterCounter2" as counter3 {
	counter = 3
	end = 3
}
counter1 ..> counter3 : count(2)
counter2 ..> counter3 : count(1)
counter2 ..> counter3 : count(2)
Vi ser at ett kall til count(2) har samme effekt som to kall til count(1) og at det ikke lenger er lov å kalle count i den siste tilstanden, dvs. når telleren (counter) har nådd slutt-verdien (end). Kall til getCounter er utelatt, siden de (fortsatt) ikke endrer tilstanden.
Code Block
languagejava
public class Counter2 {
	int end;
	int counter = 0;


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

	int getCounter() {
		return counter;
	}

	void count(int inc) {
		counter = counter + inc;
		if (counter >= end) {
			counter = end;
		}
	}
 }

For den som bruker et objekt (eller klasse) er det viktig å vite hvordan et objekt oppfører seg, både for å vite om objektet passer til problemet og hvordan unngå å bruke det feil. For den som skal kode oppførselen i en klasse, er det selvsagt helt vesentlig å tenke gjennom hvilken oppførsel objektene skal ha, og eksempler som de i figurene er ofte nyttige, både for å tenke gjennom problemet før en koder og for å forklare andre hvordan koden virker (eller er ment å virke). Slike eksempler hjelper en også å skrive tester, som forklart i Oppførsel og enhetstesting.

...