====== 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.