====== 6. Gemeinsames Projekt "Bahnhofsuhr" ======
Hier [[.kap6:komplett|die kompletten Java-Dateien des Projekts]]
{{ :schule:klassen:2017:10b:bahnhofsuhr_skizze.png |}}
{{ :schule:klassen:2017:10b:uhrprojekt_code_1.png?800 |}}
{{ :schule:klassen:2017:10b:uhrprojekt_code_2.png?800 |}}
{{ :schule:klassen:2017:10b:uhrprojekt_code_3.png?800 |}}
{{ :schule:klassen:2017:10b:uhrprojekt_code_4.png?800 |}}
===== Anforderungen an die Klasse Sekundenzeiger =====
// Instanzieren und Zeichnen an der 12:00:00 Uhr-Position:
sekundenzeiger = new Sekundenzeiger(mitteX, mitteY, radius);
// Drehen um einen Punkt in einem bestimmten Winkel:
sekundenzeiger.drehenUm(mitteX, mitteY, 0.1/12);
{{ :schule:klassen:2017:10b:sekundenzeigerdetail.png|}}
public class Sekundenzeiger {
private Kreis kreisMitte;
private Kreis kreisAussenRot;
private Kreis kreisAussenWeiss;
private Dreieck dreieck;
public Sekundenzeiger(double mitteX, double mitteY, double radius){
kreisMitte = new Kreis(mitteX, mitteY, radius/20);
kreisMitte.setFuellfarbe("rot");
double mitteYAussen = mitteY - radius * 0.6;
kreisAussenRot = new Kreis(mitteX, mitteYAussen, radius/10);
kreisAussenRot.setFuellfarbe("rot");
dreieck = new Dreieck(mitteX, mitteY - radius, radius/20, radius*6/5);
dreieck.setFuellfarbe("rot");
kreisAussenWeiss = new Kreis(mitteX, mitteYAussen, radius/20);
kreisAussenWeiss.setFuellfarbe("weiß");
}
public void drehenUm(double mitteX, double mitteY, double winkel){
kreisMitte.drehenUm(mitteX, mitteY, winkel);
kreisAussenWeiss.drehenUm(mitteX, mitteY, winkel);
kreisAussenRot.drehenUm(mitteX, mitteY, winkel);
dreieck.drehenUm(mitteX, mitteY, winkel);
}
}
===== UML-Klassendiagramm des Uhr-Projekts =====
{{ :schule:klassen:2017:10b:klassendiagramm_uhr.png |}}
===== Interfaces =====
Wie sieht das Interface ''timerListener'' aus?
public interface TimerListener {
public void timerSignalVerarbeiten();
}
**Merke:**
Ein interface („Schnittstellen-Klasse“) ist eine Vereinbarung darüber, dass ein Klasse bestimmte Methoden enthält. Implementiert eine Klasse ein Interface, so wird dies im UML-Diagramm durch einen {{:schule:klassen:2017:10b:interface_pfeil.png?50|}} dargestellt.