logo

 

 
 

 

 

 

 

 

 

Übersicht aller Übungen

  • Übung 1
  • Übung 2
  • Übung 3
  • Übung 4
  • Übung 5
  • Übung 6
  • Übung 7
  • Übung 8
  • Übung 9
  • Übung 10
  • Übung 11
  • Übung 12




    alle Lösungen (als *.zip)


  • Lösung Übung 1
  • Lösung Übung 2
  • Lösung Übung 3
  • Lösung Übung 4
  • Lösung Übung 5
  • Lösung Übung 6
  • Lösung Übung 7
  • Lösung Übung 8
  • Lösung Übung 9
  • Lösung Übung 10
  • Lösung Übung 11
  • Lösung Übung 12

  • Übung 10 Übung 12    

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

     


     
           
    © 2002 by Daniel Stojceski • Zylous@web.de