Bitte um Code-Überprüfung :-)

Neue Frage »

Auf diesen Beitrag antworten »
Java_Beginner Bitte um Code-Überprüfung :-)

Meine Frage:
Hallo :-)

Ich habe eine Aufgabe und den Code dazu geschrieben. Seid bitte so nett und werft einen Blick darauf, wo was verbessert werden könnte :-)

Vielen Dank.

Meine Ideen:
Die Aufgabe:

Erstellen Sie für eine Digitaluhr eine Klasse Zeit, welche Uhrzeiten in der Form ss:mm repräsentiert. Gültige Zeiten liegen zwischen 00:00 Uhr und 23:59 Uhr. Die Klasse Zeit soll eine Funktion print() besitzen, welche eine Zeit beispielsweise in der Form 07:05 ausgibt. (Und zwar genau so, also mit führender Null.) Weiterhin besitzt die Klasse Zeit einen Konstruktor, mit dem eine Initialisierung einer Zeit unter Angabe der Stunden und Minuten möglich ist. Wenn beim Anlegen eines Zeit-Objektes kei-ne Zeit angegeben wird, soll die Zeit automatisch mit 00:00 initialisiert werden. Wird beim Initialisieren eine ungültige Uhrzeit angegeben (also z.B 24:30 Uhr oder 3:67 Uhr) soll der Konstruktor die Zeit auf 00:00 setzten und eine entsprechende Fehlermeldung erzeugen. Testen nicht vergessen!


Mein Code:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:

package zeittest;

public class ZeitTest 
{
    public static void main(String[] args) 
    {
        Zeit t = new Zeit ("1","33");
        t.print();
    }
}


class Zeit 
{
    private String stunde1;
    private String minute1; 
    
    public Zeit ()
    {
        stunde1="00";
        minute1="00";
    }
    
    public Zeit (String stunde, String minute)
    {
        stunde1 = stunde;
        minute1 = minute; 
        
        if (Integer.valueOf(stunde)>23 || Integer.valueOf(stunde)<0 )
        {
            stunde1="00";
            minute1="00";
        }
        else if (Integer.valueOf(minute)>59 || Integer.valueOf(minute)<0)
        {
            stunde1="00";
            minute1="00";
        }
        else if (Integer.valueOf(stunde)>=0 && Integer.valueOf(stunde)<10) 
        {
            stunde1= "0" + stunde; 
        }
    }

    
    public void print ()
    {
        System.out.println(stunde1 + ":" + minute1);
    }
}

 
Auf diesen Beitrag antworten »
eulerscheZahl

Prinzipiell möglich. Ich hätte die Stunden und Minuten als int gespeichert - auch im Hinblick auf mögliche Rechnungen.
Die Ausgabe geht dann mit
code:
1:
System.out.println(String.format("%02d:%02d", stunden, minunten));

Dadurch kriegst du auch führende Nullen.
Auf diesen Beitrag antworten »
Java_Beginner

Vielen Dank. Ich hatte zu Beginn Integer anstatt Strings, dann aber das Problem mit der führenden Null.
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »