Lecture overview -- Keyboard shortcut: 'u'  Previous page: Eksempel på klasseinvarianter: Trekantshierarkiet -- Keyboard shortcut: 'p'  Next page: Kontrakter i praktisk programudvikling [Section] -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 25 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Designkontrakter og ansvarsfordeling
Assertions i abstrakte klasser

Assertions giver i høj grad mening i abstrakte klasser. Via reglerne for redefinerede operationers assertions er det meget nyttigt at angive assertions allerede på et meget generelt niveau i et klassehierarki

Det er nyttigt og meningsfyldt at definere kontrakter i abstrakte klasser

/user/normark/courses/prog1/prog1-01/sources/noter/includes/abstract-stack-with-assertions.javaDen abstrakte klasse Stack forsynet med assertions.

Den abstrakte klasse Stack forsynet med assertions. Vi har taget udgangspunkt i den abstrakte klasse Stack fra forrige lektion. Pre- og postbetingelser i "..." er uformelle, kommentarlignende udsagn, som ikke vil kunne eftercheckes når programmet kører.

 

Definition af abstrakte klasser med kontrakter understøtter specifikation i form af 'design by contract'

Abstrakte klasser er i overvejende grad udtryk for design, som kontrast til implementation. Når vi forsyner abstrakte klasser med kontrakter vil vi tale om 'design by contract'