FU Berlin, Institut für Informatik

Java-Kurs  WS 2000/2001

M. Esponda

 

 

8. Übungsblatt

 

 

1.      Aufgabe

 

a)      Erzeuge ein Inhaltsverzeichnis mit dem Namen „u8“  und packe dort die Datei BallWorld.zip  (siehe unsere Internet-Seite) aus.

 

b)      Gehe in das Verzeichnis „u8“ und  compiliere von da aus

alle java-Dateien aus dem Verzeichnis „ballworld“ wie folgt:

 

javac ballworld/Animate.java

javac ballworld/Ball.java

……..usw.

 

c)       Starte das Programm mit „java ballworld.BallWorld Fall Shrinker UNO usw.

 

d)      In dieser Aufgabe soll eine Klasse „MyBall“ definiert werden, die folgende zwei Schnittstellen implementiert:

 

 

public interface Ball

{

   public double getX();

   public double getY();

   public double getRadius();

 

   public void setWorld(World theWorld);

 

   public void userClicked(double atX, double atY);

   public void userTyped(char key);

}

 

 

public interface Animate

{

   public void act();

}

 

 

e)     Es soll eine bereits vorhandene World-Klasse verwendet werden, die ein Fenster für Ball-Objekte zur Verfügung stellt. In World-Objekten können sich Ball-Objekte bewegen. Bei der Implementierung der MyBall-Klasse können durch eine Referenz auf ein World-Objekt folgende Methoden benutzt werden:

 

 

    public interface World

    {

          public double getMinX();

          public double getMinY();

          public double getMaxX();

          public double getMaxY();

 

         public Ball getClosestBall(Ball fromBall);

         public void addBall(Ball aNewBall);

         public void removeBall(Ball toBeRemoved);

   }

 

f)        Es sind einige Implementierungen im Verzeichnis ballworld vorhanden, die man starten kann. Versuche zuerst, eine dieser Implementierungen zu verändern, und  dann wirst Du sicherlich viele  Ideen für eine eigene Implementierung bekommen.

 

                         

 

2.     Aufgabe

 

 

       Definiere eine Unterklasse "StopUhr", die die Klasse "Clock" erweitert.

 

a)        Welche neuen Attribute brauche ich in meiner Klasse

         "StopUhr"?

b)        Welche neuen Methoden sollte man sinnvollerweise definieren?

c)        Welchen Rückgabewert sollen meine Methoden haben?

d)        Wie kann ich meine neue Klasse sinnvoll testen?

 

      Definiere eine Klasse "TestStopUhr", die die Klasse "StopUhr" überprüft.

         

3.     Aufgabe

 

Definiere eine Unterklasse „MyClockWindow“, die die Klasse „Frame“ aus

der java.awt.* Bibliothek so erweitert, dass die Uhrzeit im Fenster angezeigt wird.

 

4.  Aufgabe

    

a)  Definiere eine Klasse StopUhrFenster, die eine graphische

Oberfläche für deine StopUhr erzeugen kann.

 

b) Die Ausgaben deiner StopUhr, bis jetzt nur auf dem DOS-Fenster, sollen jetzt auf deine StopUhrFenster-Objekt umgeleitet werden.