Arbeitsblatt 3

Werbung
Arbeitsblatt 3 – EAD II Klassen und Objekte
Aufgabe Uhr
Es soll eine Digitaluhr in Java implementiert werden, die Stunden und Minuten zweistellig
und durch einen Doppelpunkt getrennt ausgibt.
Beim Start soll wahlweise eine Uhrzeit eingegeben werden oder es wird “00:00” zugewiesen.
Außerdem soll die Uhrzeit gelesen oder neu zugewiesen werden können.
Das Ticken der Uhr wird über eine Methode simuliert. Diese gibt ein Taktsignal, das die Uhr
um eine Minute weitersetzt und dabei auch die Anzeige aktualisiert
Die Umsetzung erfolgt modularisiert: die zu erledigenden Aufgaben werden auf zwei Klassen
aufgeteilt. Die Uhrenanzeige besitzt zwei Anzeigen, die jeweils beginnend bei 0 in jedem
Schritt um 1 erhöht werden und bei Erreichen eines Grenzwertes wieder bei 0 beginnen. Da
dieses Verhalten gleich ist, kann eine Klasse erstellt werden, die genau das umsetzt. Für die
Uhrenanzeige wird diese Klasse dann benutzt.
Bild 1: Klassendiagramme für die Klassen Nummernanzeige und Uhrenanzeige
Objektdiagramme für zwei Objekte der Klasse Nummernanzeige
Was ist der Unterschied zwischen einem Klassendiagramm und einem Objektdiagramm?
Welche Informationen kann man dem dargestellten Objektdiagramm entnehmen, die für die
Implementierung erforderlich sind?
Teil 1
Implementieren Sie die Klasse Nummernanzeige. Überlegen Sie, was die einzelnen
Methoden tun müssen.
Welche Parameter müssen im Konstruktorparameter übergeben werden?
Testen Sie die Klasse, indem Sie einige Objekte erzeugen und ihre Methoden aufrufen.
Teil 2
Implementieren Sie die Klasse Uhrenanzeige. Was sind sinnvolle Werte für die
Instanzvariablen im Konstruktor ohne Parameter? Schreiben Sie auch einen überladenen
Konstruktor, dem man die Anfangszeit übergeben kann.
Implementieren Sie ebenfalls die sondierende Methode getUhrzeit() und die
verändernde Methode setUhrzeit(int, int).
Teil 3
Die Methode taktsignalGeben() soll das Vergehen einer Minute modellieren, also die
Uhrzeit um eine Minute weiterstellen. Was muss dabei berücksichtigt werden? Zeichnen Sie
das Struktogramm!
Teil 4
Die Ausgabe auf der Konsole erfolgt als String. Um nicht jedesmal die Zahlenwerte in eine
korrekte zweistellige Darstellung umzurechnen, kann man eine Instanzvariable
zeitanzeige erstellen, die jeweils die aktuelle Uhrzeit als String enthält.
Die Aufgabe der Methode anzeigeAktualisieren()ist es dann, diese Zeichenkette
zeitanzeige zu aktualisieren. Warum kann man diese Methode als private
deklarieren?
Implementieren Sie die Methode.
Graphische Oberfläche für Uhrenanzeige
Für eine graphische Oberfläche müssen Fenster erzeugt werden, Elemente in den Container
des Fensters eingefügt werden, eventuell die Größe und andere Eigenschaften der Elemente
festgelegt und das oder die Fenster sichtbar gemacht werden.
import javax.swing.*;
import java.awt.*;
/**
* Stellt die Uhrzeit digital in einem Fenster dar.
*
* @author (Rita Freudenberg)
* @version (14.4.2010)
*/
public class Digitalanzeige
{
// instance variables - replace the example below with
your own
private Uhrenanzeige uhr;
private JFrame fenster;
private JLabel label1;
private Container inhalt;
/**
* Constructor for objects of class Digitalanzeige
*/
public Digitalanzeige()
{
// initialise instance variables
uhr = new Uhrenanzeige();
fenster = new JFrame ("Digitaluhr");
inhalt = fenster.getContentPane();
label1 = new JLabel(uhr.getZeitanzeige());
inhalt.add(label1);
fenster.setSize(100,100);
}
fenster.setVisible(true);
public void zeigeZeit()
{
uhr.taktsignalGeben();
label1.setText(uhr.getZeitanzeige());
}
}
Herunterladen