An dieser Stelle der Veranstaltung findet ein thematischer Sprung statt. Eigentlich hätten die in Übungsblättern 1 bis 4 gestellten Aufgaben besser gegen Ende des Tutoriums behandelt werden sollen. Leider kam mir diese Erkenntnis damals zwei Wochen zu spät.
Folgende Teilaufgaben schließen den bisher behandelten Stoff ab und bereiten den neuen Stoff vor.
Sind folgende Java-Anweisungen fehlerfrei zu compilieren und auszuführen? Begründen Sie Ihre Antwort.
int a;a = 5;
int b = 5;
int c,c = 5;
float d = 5,5;
float e = 5;
double f1 = 5d; float f2 = f1;
double g1 = 5e; float g2 = g1;
double h1 = 5f; float h2 = h1;
long i = 0.0;
float j = 0.0;
float k1 = 5f; double k2 = k1;
double l = 0.0;
long m = (short)Integer.MAX_VALUE;
short n = (long)0;
Position
, deren Objekte eine Position in einem zweidimensionalen Koordinatensystem repräsentieren. Die Klasse soll zunächst keine Objektmethoden haben. Beim Erstellen eines Objekts soll die Angabe der Koordinaten erzwungen werden.GeographicPosition
möglichst einfach, deren Objekte eine geographische Position repräsentieren. Diese Klasse soll sich dadurch auszeichnen, dass sie über Methoden (oder Konstruktoren) zum Setzen der Position auf Werte nach Grad und Bogenminuten verfügt.Position
eine Objektmethode distanceFrom(Position)
hinzu, die den Abstand zwischen zwei Positionen zurückliefert.Betrachten Sie Ihre Klassenstruktur aus Aufgabe 5-3 und das folgende Code-Fragment.
GeographicPosition p1, p2; … // Konstruktion der Objekte System.out.println(p1.distanceFrom(p2));
Ein kartographischer Verlag legt zur Verwaltung seiner Kartenprodukte eine Klassenstruktur an. Setzen Sie diese Klassenstruktur entsprechend den folgenden Teilaufgaben in Java um!
Legen Sie eine Klasse Karte
mit den folgenden Objektvariablen an:
lfdNummer
gebildet aus dem Jahr und einer 3-stelligen Ziffer (julianisches Datum)titel
breite
des Formats in mmhoehe
des Formats in mmzustand
(Planung, KRE, KDH, Vertrieb, nicht mehr im Vertrieb)ausgabe
als Datum mit Tag, Monat und Jahrinhalt
(Touristik, Straßen, Panorama, Spezial)nettoPreis
in Euro mit Cent-Beträgen(Vergleichen Sie diese Aufgabenstellung mit der Studienarbeit zur Vorlesung „Datenbanken und Informationssysteme 2“!)
Eine bereits im Verlag vorhandene Spezifikation einer relationalen Datenbank enthält die folgenden Angaben zum Thema der Abteilungen und Mitarbeiter. Setzen Sie diesen Teil der Spezifikation in nur zwei Java-Klassen Abteilung
und Mitarbeiter
um! Beachten Sie dabei, dass dies sinnvollerweise nicht immer eins zu eins geschehen sollte.
Tabelle der Abteilungen mit den Spalten:
Tabelle der Mitarbeiter mit den Spalten:
Tabelle der n : m–Relationen Abteilung–Mitarbeiter mit den Spalten:
Die meisten Mitarbeiter arbeiten 42 Stunden in der Woche. Einige Mitarbeiter arbeiten in mehreren Abteilungen.
(Verwenden Sie, wie immer, Namen mit kleinen Anfangsbuchstaben für alle Variablen. In Java sollten nur Klassen Namen mit großem Anfangsbuchstaben haben.)
Schreiben Sie eine Klasse Start
mit einer Methode main
, in der jeweils mindestens zwei Objekte jeder der in den vorhergehenden Teilaufgaben deklarierten Klassen konstruiert und vollständig mit sinnvollen Werten gefüllt werden.
Erstellen Sie ein Klassenstrukturdiagramm für alle Klassen dieser Aufgabe. Vergleichen Sie dieses Diagramm mit dem Entity-Relationship–Diagramm in der Studienarbeit zur Vorlesung „Datenbanken und Informationssysteme 2“.
GeographicPosition
aus Aufgabe 5-3 Teil (b) die Position nach Grad und Bogenminuten nicht nur setzen, sondern auch zurückliefern können! Beachten Sie, dass dafür die gleichzeitige Rückgabe mit return
von mehr als einem Wert primitiven Typs erforderlich ist.GeographicPosition
soll jedoch nicht verändert werden! Benutzen Sie daher das objektorientierte Prinzip der Vererbung. (Bonuspunkte für Anwendung des Decorator-Patterns!)Sind folgende Java-Anweisungen syntaktisch korrekt (mit den Variablen a
und b
deklariert mit Typ int
)? Begründen Sie Ihre Antwort.
a + 1 = b;
boolean y = true - false;
b = 1 & 2;
int a = 'A';
byte x = (byte)280;
boolean z = (false == (10 >= 20));
$Id: HEADER.html,v 1.7 2008/01/10 16:32:18 arne Exp $