Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultšt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * A 1
       * A 2
       * A 3
       * A 4
       * A 5
       * A 6
       * A 7
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2007/08  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 1  >  Klasse Stringbuffer

Klasse Stringbuffer

Einordnung in die Gesamtstruktur

Modul
object
Basisklassen
keine
abgeleitete Klassen
O_Stream
Erstellungszeitpunkt
Aufgabe 1
Dateien
strbuf.h strbuf.cc

Beschreibung

Die Klasse Stringbuffer dient dazu, einzelne Zeichen zu längeren Texten zusammenzustellen, die dann an einem Stück verarbeitet werden können. Damit ein möglichst vielseitiger Einsatz möglich ist, trifft die Klasse keine Annahme darüber, was "verarbeiten" in diesem Zusammenhang bedeutet. Nur der Zeitpunkt der Verarbeitung steht bereits fest, nämlich immer, wenn dies explizit gewünscht wird oder der Text so lang geworden ist, dass keine weiteren Zeichen hinzugefügt werden können.

öffentliche Methoden

void put (char c)
Diese Methode fügt das Zeichen c an das Ende der bereits gesammelten Zeichen an. Wenn die Pufferkapazität des Stringbuffer Objektes nun erschöpft ist, müssen die gesammelten Zeichen durch Aufruf der Methode flush () verarbeitet werden.
virtual void flush()=0
Mit dieser Methode sollen die gesammelten Zeichen verarbeitet und so Platz für neue Zeichen geschaffen werden. Die Implementierung der Methode soll jedoch erst in den abgeleiteten Klassen erfolgen.

Hinweise zur Implementierung

Zur Pufferung der Zeichen eignet sich ein fest dimensioniertes Feld, auf das die abgeleiteten Klassen zugreifen können müssen. Auch die Anzahl der Zeichen oder das zuletzt beschriebene Feldelement sollte in den spezialisierten flush() Methoden erkennbar sein.

Anmerkung

Anlass für die Einführung dieser Klasse war die Erkenntnis, dass Ausgaben eines Programmes sehr häufig aus vielen kleinen Komponenten bestehen, zum Beispiel, wenn die Namen und Inhalte von Variablen dargestellt werden sollen. Andererseits können wenige längere Texte meist viel effizienter ausgegeben werden als viele kurze. Daher erscheint es sinnvoll, vor der Ausgabe die einzelnen Komponenten mit Hilfe eines Stringbuffer Objekts zusammenzufügen und erst später, z. B. bei einem Zeilenumbruch, gesammelt auszugeben.

  Impressum Stand: 2007-11-23 08:49   AG, WH