Initial commit of the source files.

This commit is contained in:
Bernhard Tellenbach 2017-09-17 17:06:04 +02:00
parent 8536335b71
commit 546b8c85d7
3 changed files with 156 additions and 0 deletions

23
README.TXT Normal file
View File

@ -0,0 +1,23 @@
Projekt: Zeitanzeige
Autoren: David Barnes und Michael Kölling
Dieses Projekt ist Teil des Zusatzmaterials zum Buch
Java lernen mit BlueJ - eine Einführung in die
objektorientierte Programmierung, 5. Auflage
David J. Barnes und Michael Kölling
Pearson Education Deutschland, 2012
Startpunkt: Erzeugen Sie ein Exemplar der Klasse Uhrenanzeige.
Untersuchen Sie es mit dem Objektinspektor und lassen Sie das Fenster
offen. Wenn Sie nun Operationen wie 'taktsignalGeben' oder 'setzeUhrzeit'
auf diesem Exemplar aufrufen, können sie im Inspektor-Fenster beobachten,
wie sich die Exemplarvariable 'zeitanzeige' verändert.
Diese Exemplarvariable simuliert die Anzeige einer Uhr. Wenn dieses
Programm Teil einer richtigen Uhr wäre, dann würde statt dieser
Zeichenkette die echte, physische Ausgabe verändert werden. Alles
andere könnte aber ziemlich genauso aussehen.
Hinweis: In diesem Projekt ist keine angemessene Fehlerbehandlung
implementiert.

107
Uhrenanzeige.java Normal file
View File

@ -0,0 +1,107 @@
/**
* Die Klassen Uhrenanzeige implementiert die Anzeige einer Digitaluhr.
* Die Anzeige zeigt Stunden und Minuten. Der Anzeigebereich reicht von
* 00:00 (Mitternacht) bis 23:59 (eine Minute vor Mitternacht).
*
* Eine Uhrenanzeige sollte minütlich "Taktsignale" (über die Operation
* "taktsignalGeben") erhalten, damit sie die Anzeige aktualisieren
* kann. Dies geschieht, wie man es bei einer Uhr erwartet: Die
* Stunden erhöhen sich, wenn das Minutenlimit einer Stunde erreicht
* ist.
*
* @author Michael Kölling und David J. Barnes
* @version 31.07.2011
*/
public class Uhrenanzeige
{
private int stundenLimit;
private int stundenWert;
private int minutenLimit;
private int minutenWert;
private String zeitanzeige; // simuliert die tatsaechliche Anzeige
/**
* Konstruktor fuer ein Exemplar von Uhrenanzeige.
* Mit diesem Konstruktor wird die Anzeige auf 00:00 initialisiert.
*/
public Uhrenanzeige()
{
stundenLimit = 24;
stundenWert = 0;
minutenLimit = 60;
minutenWert = 0;
anzeigeAktualisieren();
}
/**
* Konstruktor fuer ein Exemplar von Uhrenanzeige.
* Mit diesem Konstruktor wird die Anzeige auf den Wert
* initialisiert, der durch 'stunde' und 'minute'
* definiert ist.
*/
public Uhrenanzeige(int stunde, int minute)
{
stundenLimit = 24;
stundenWert = 0;
minutenLimit = 60;
minutenWert = 0;
setzeUhrzeit(stunde, minute);
}
/**
* Diese Operation sollte einmal pro Minute aufgerufen werden -
* sie sorgt dafuer, dass diese Uhrenanzeige um eine Minute
* weiter gestellt wird.
*/
public void taktsignalGeben()
{
minutenWert = (minutenWert + 1) % minutenLimit;
if(minutenWert == 0) { // Limit wurde erreicht!
stundenWert = (stundenWert + 1) % stundenLimit;
}
anzeigeAktualisieren();
}
/**
* Setze die Uhrzeit dieser Anzeige auf die gegebene 'stunde' und
* 'minute'.
*/
public void setzeUhrzeit(int stunde, int minute)
{
if((stunde >= 0) && (stunde < stundenLimit)) {
stundenWert = stunde;
}
if((minute >= 0) && (minute < minutenLimit)) {
minutenWert = minute;
}
anzeigeAktualisieren();
}
/**
* Liefere die aktuelle Uhrzeit dieser Uhrenanzeige im Format SS:MM.
*/
public String gibUhrzeit()
{
return zeitanzeige;
}
/**
* Aktualisiere die interne Zeichenkette, die die Zeitanzeige haelt.
*/
private void anzeigeAktualisieren()
{
if(stundenWert < 10) {
zeitanzeige = "0" + stundenWert;
}
else {
zeitanzeige = "" + stundenWert;
}
zeitanzeige = zeitanzeige + ":";
if(minutenWert < 10) {
zeitanzeige = zeitanzeige + "0" + minutenWert;
}
else {
zeitanzeige = zeitanzeige + minutenWert;
}
}
}

26
package.bluej Normal file
View File

@ -0,0 +1,26 @@
#BlueJ package file
package.editor.height=533
package.editor.width=941
package.editor.x=1028
package.editor.y=164
package.numDependencies=0
package.numTargets=1
package.showExtends=true
package.showUses=true
project.charset=UTF-8
readme.editor.height=526
readme.editor.width=748
readme.editor.x=0
readme.editor.y=0
target1.editor.height=1024
target1.editor.width=795
target1.editor.x=16
target1.editor.y=22
target1.height=50
target1.name=Uhrenanzeige
target1.naviview.expanded=false
target1.showInterface=false
target1.type=ClassTarget
target1.width=100
target1.x=70
target1.y=40