Ü B U N G 11
Aufgabe 1
Erstellen Sie eine Klasse "Komplex" zur Darstellung komplexer
Zahlen. (Eine komplexe Zahl besteht aus einem Realteil und einem
Imaginärteil, die beide reelle Zahlen sind. Sie können sich komplexe
Zahlen auch als Punkte in der euklidischen Ebene vorstellen.)
Die Klasse soll eine Methode zur Ausgabe enthalten, die eine
komplexe Zahl wie die Koordinaten eines Punktes in der Form
(Realteil, Imaginärteil ) darstellt.
Aufgabe 2
Erstellen Sie eine Klasse "Reell" zur Darstellung reeller Zahlen
als Erweiterung der Klasse "Komplex". Die Ausgabe reeller Zahlen
soll einfach durch Ausgabe ihres Wertes erfolgen.
Testen Sie Ihre Implementierung mit folgender Main-Methode:
public static void main(String[] args) {
Komplex k1 = new Komplex(4,5);
Komplex k2 = new Komplex(12,8);
Reell r1 = new Reell(12);
Komplex[] k = {k1,k2,r1};
for (int i = 0; i < k.length; i++)
k[i].print();
}
Aufgabe 3
Welche der folgenden Deklarationen und Zuweisungen sind korrekt?
Reell x1 = new Reell (4.0);
Komplex c1 = new Komplex (1.0, 2.0);
Reell x2 = (Reell) c1;
Komplex c2 = (Komplex) x1;
Komplex c3 = new Reell (2.0);
Reell x3 = (Reell) c3;
Reell x4 = c3;
Komplex c4 = x1;
Reell x5 = new Komplex (2.2, 0.0);
Komplex [] v = new Komplex [9];
Reell [] w = new Reell [9];
v[0] = x1;
v[1] = c1;
v[2] = x2;
v[3] = c2;
v[4] = c3;
v[5] = x3;
v[6] = x4;
v[7] = c4;
v[8] = x5;
w[0] = x1;
w[1] = c1;
w[2] = x2;
w[3] = c2;
w[4] = c3;
w[5] = x3;
w[6] = x4;
w[7] = c4;
w[8] = x5;
Casting
Aufgabe 4
Gegeben seien zwei double-Werte x und y mit x = 6.3 und y =
4.5, sowie eine int-Variable z.
Was passiert, wenn Sie z den Wert
der Division x / y zuweisen? Wie können Sie das auftretende Problem
lösen?
Aufgabe 5
Gegeben Sei folgendes Programm:
/*
Programm: U11_5.java
Beispiel für explizites Casten von primitiven Datentypen
*/
public class U11_5
{
public static void main(String args[])
{
int i;
for (i=120;i<130;i++)
{
System.out.println( i +" "+ (byte)i );
}
}
}
Welche Ausgabe erwarten Sie? Überlegen Sie sich, welche
Auswirkungen das Casting in diesem Beispiel haben kann. Überprüfen
Sie Ihre Erwartungen, in dem Sie das Beispiel compilieren und
ausführen.
Aufgabe 6
Casten von Objekten: In der letzten Übung haben Sie die
drei Klassen Medium, Buch und
Zeitschrift implementiert.
Download der Lösung (Medium.java)
Download der Lösung (Buch.java)
Download der Lösung (Zeitschrift.java)
Welche der folgenden Zuweisungen sind erlaubt?
Buch b1 = new Buch("Mein Buch Titel",1999,"MeinVerlag1","MeinAutor1");
Zeitschrift z1 = new Zeitschrift("MeineZeitschrift",12,2002,"Verlag");
Buch b2 = (Buch) z1;
Medium m1 = new Buch("MeinBuch2",1998,"MeinVerlag2","MeinAutor2");
Medium m2 = new Zeitschrift("MeineZeitschrift",12,2002,"Verlag");
Medium m3 = new Medium("MeinTitel",2001, "Test-Verlag");
Zeitschrift z2 = (Zeitschrift) z1;
Zeitschrift z3 = (Zeitschrift) m3;
Buch b3 = m1;
Buch b4 = (Buch) m1;
Buch[] b = new Buch[4];
Medium[] m = new Medium[4];
b[0] = b1;
b[1] = m1;
b[2] = (Buch) m2;
b[3] = (Medium) b1;
m[0] = b1;
m[1] = (Medium) m1;
m[2] = b[0];
m[3] = (Medium) m2;
Bitte lösen Sie diese Aufgabe zunächst auf Papier.
Begründen Sie jeweils kurz, warum ein Cast erlaubt oder nicht
erlaubt ist und ob es sich dabei um einen Up- bzw. Downcast handelt.
Überprüfen Sie anschließend Ihre Lösung am Rechner.