Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
7.1 Calendar<br />
In den restlichen Zeilen der Methode ist definiert, wie mit negativen Parameterwerten zu<br />
verfahren ist: es wird das Komplement zu 60 bzw. 24 berechnet. Hierbei bezeichnet der<br />
‘+=‘-Operator (compound assignment operator)eine Zuweisung, welche zugleich mit<br />
einer arithmetischen Operation verknüpft ist. Der Ausdruck minutes += 60 ist die<br />
verkürzte Schreibweise für:<br />
minutes = minutes + 60;<br />
Siehe auch: 7.1.2.1<br />
7.1.1.2 Information Hiding<br />
Da die Klasse Time die Instanzvariablen hours und minutes als private deklariert,<br />
kann auf diese ausserhalb der Klasse Time nicht zugegriffen werden (siehe<br />
Abschnitt 6.2.1.3 und 6.2.2.1). Im Gegenzug bietet sie aber Methoden, welche auf den<br />
Werten dieser Instanzvariablen operieren.<br />
So deklariert die Klasse UserFrame die Methoden getHours() und<br />
getMinutes(), welche die Stunden und Minuten der aktuellen Uhrzeit zurückliefern,<br />
sowie die Methode getMinutesAfterMidnight(), welche berechnet, wieviele<br />
Minuten seit Mitternacht vergangen sind.<br />
Die Methode increment() erlaubt die minutenweise Addition bzw. Subtraktion bei<br />
negativem Parameter. Beachtenswert hierbei ist, dass die momentane Zeit zuerst in<br />
Minuten umgerechnet werden muss, bevor die Addition bzw. Subtraktion erfolgt. Das<br />
erhaltene Resultat wird dann der Methode setTime() übergeben, welche den Ausdruck<br />
wieder zu Stunden und Minuten konvertiert.<br />
Die Methoden equals() und before() ermöglichen ein als Parameter übergebenes<br />
Zeitobjekt mit der momentanen Zeit zu vergleichen. Diese Methoden werden aber<br />
zusammen mit getHours() und getMinutes() nie im Programm aufgerufen. Da sie<br />
jedoch eine weitere Zeitmanipulation realisieren, sind sie ebenfalls in der Klasse Time<br />
deklariert. Hierdurch wird Time zu einer universellen Klasse, welche Methoden zur<br />
Generierung und Manipulation von Zeitobjekten anbietet, und kann in einem anderen<br />
Zusammenhang wiederverwendet werden.<br />
Dadurch, dass die Klasse Time den Zugriff auf ihre Instanzvariablen von ausserhalb der<br />
Klasse unmöglich macht, dafür aber Methoden anbietet, welche eine genau definierte<br />
Manipulation erlauben, wird ein kontrollierter, externer Zugriff realisiert.<br />
7.1.1.3 Conditional Operator<br />
Die Methode<br />
167