Exercises in this lecture  Go to the slide, where this exercise belongs -- Keyboard shortcut: 'u'  

Exercise 9.1
Pre- og postbetingelser i CircularList


På den tilknyttede slide er der vist pre- og postbetingelser for klassen CircularList. I betingelserne anvendes funktionerne empty(), countElements(), isCircular(), isFirst(Object), isLast(Object), retrieveSecond() og retrieveButLast().

Denne opgave går ud på at implementere ovennævnte funktioner som private operationer i klassen CircularList. Simuler pre- og postbetingelserne ved at kalde funktionerne hhv. først og sidst i klassen's metoder. Hvis der brydes en prebetingelse skal man udføre:

   throw new PreconditionBroken()

Tilsvarende skal et brud af en postbetingelse føre til udførelse af:

   throw new PostconditionBroken()

Download filen med min løsning af opgaven om Cirkulære lister. Denne fil indeholder endvidere de nødvendige erklæringer af de ovenfor nævnte exception klasser.

Udtrykkene i 'old ...' kan volde særlige problemer. Ideen med old er at kunne evaluere et udtryk i den programtilstand som bestod netop inden metoden blev kaldt. Derfor vil det være en mulighed at forudberegne disse 'old udtryk' i starten af metoden.


Solution