Lecture overview -- Keyboard shortcut: 'u'  Previous page: Subkontrakter -- Keyboard shortcut: 'p'  Next page: Assertions i abstrakte klasser -- 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 24 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Designkontrakter og ansvarsfordeling
Eksempel på klasseinvarianter: Trekantshierarkiet

Vi har tidligere studeret hierarkiet af trekanter. Først nu hvor vi er bevæbnet med klasseinvarianter kan vi på en tilfredsstillende måde karakterisere specialiseringen i dette klassehierarki

Invarianter i klassehierarkiet af trekanter:

    Generel trekant:
    3 sider og 3 vinkler
    Vinkelsum er 180 grader

    Ligebenet trekant:
    Invariant generel trekant
    To sider er lige lange

    Retvinklet trekant:
    Invariant-generel
    Phytagoras

    Ligesidet trekant:
    Invariant-ligebenet
    Tredie side har samme længde som de to andre

    Retvinklet ligebenet trekant:
    Invariant-retvinklet
    Invariant-ligebenet

I takt med at vi specialiserer trekanterne styrkes klasseinvarianterne