Initial commit of the source files.
This commit is contained in:
parent
8536335b71
commit
546b8c85d7
|
@ -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.
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
Loading…
Reference in New Issue