Lecture overview -- Keyboard shortcut: 'u'  Previous page: Abstrakte klasser -- Keyboard shortcut: 'p'  Next page: Abstrakte klasser: Skematisk eksempel -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 3 : 26
Forelæsningsnoter i Objekt-orienteret Programmering
Design af klassehierarkier
Eksempel: Stack

Det første eksempel vi ser på er den velkendte Stack udsat for abstrakte klasser

I den abstrakte klasse Stack har vi endnu ikke lagt os fast på en datarepræsentation

abstract class Stack{ 
  
  abstract public void push(Object el);
  abstract public void pop();
  abstract public Object top();
  abstract public boolean full();
  abstract public boolean empty();
  abstract public int size();

  public void toggleTop(){
    if (size() >= 2){
      Object topEl1 = top();  pop();
      Object topEl2 = top();  pop();
      push(topEl1); push(topEl2);
    }
  } // toggleTop

  public String toString(){
    return("Stack");
  }
} // end Stack

Den abstrakte klasse Stack. Klassen indeholder en række abstrakte metoder samt to konkrete metoder, hvoraf den mest bemærkelsesværdige er toggleTop. Metoden toggleTop ombytter de to øverste elementer på stakken, forudsat naturligvis at stakken har mindst to elementer. Ved brug af push, pop og top operationerne kan vi implementere toggleTop på det abstrakte niveau. Metoden toggleTop arves naturligvis af alle konkrete subklasser af den abstrakte Stack.