erstellt: 23.09.99; übersetzt: 19.05.03; überarbeitet 26.01.04, 12.07.04, 18.01.05, 10.01.11, 12.06.18, 06.05.2019, 25.11.19, 30.11.20, 12.07.21, 29.11.21, 07.06.22, 06.02.23; Deutsche Übersetzung Heinrich Gailer


Wir füllen die Lücken aus

1.       Entwurf der Box-Klasse.     Objekte von dieser Klasse werden eine Box repräsentieren (wie einen Karton.) Die Seiten der Box sind Rechtecke. Eine Box hat drei wesentliche Merkmale: Breite, Länge und Höhe. Ausgehend von diesen Merkmalen können andere Werte berechnet werden: Volumen und Gesamtoberfläche.

Wir füllen in dem folgenden Klassenentwurf die Lücken aus:

class 

Eine Klasse, die eine Box repräsentiert.

Konstruktoren

Box ( double ,
      double ,
      double   )

Der Konstruktor sollte Volumen und Fläche nicht als Parameter beinhalten, da diese Werte mit den Variablen breite, hoehe und laenge der Box berechnet werden können.

Der Einfachheit halber nehmen wir einen weiteren Konstruktor auf, der verwendet wird, wenn alle Seiten der Box gleich groß; sind (wenn die Box ein Würfel ist):

Box ( double  )
Methoden

// Das Volumen der Box berechnen
double  

// Die Oberfläche der Box berechnen.
double  



2.      Überprüfung des Designs.    Wir schreiben ein kleines Programm, das die Klasse verwendet, um das Design zu überprüfen. Das Programm erzeugt ein Box-Objekt mit den Seiten 2.5, 5.0, und 6.0 Zoll. Wir geben die Oberfläche und das Volumen aus.

class BoxTester
{

  public static void main ( String[] args )
  {
     Box box = new   ;

     System.out.println( "Oberflaeche: "    + box. +
                         "  Volumen: " + box. );

  }
}


3.      Grundgerüst der Klasse.    Wir füllen die Lücken aus, um das Grundgerüst der Klasse anzugeben.

class Box
{
  // 

  // 

  // 

}


4.      Wir füllen die Instanzvariablen aus.    Füllen wir den Datentyp für jede Instanzvariable aus.

class Box
{
  // Instanzvariablen
   breite;
   laenge;
   hoehe;

  // Konstruktoren

  // Instanzmethoden

}


5.      Wir vervollständigen den Konstruktor.    Der Konstruktor wird die Instanzvariablen der zu konstruierenden Objekte initialisieren.

class Box
{
  // Instanzvariablen
  double breite;
  double laenge;
  double hoehe;

  // Konstruktoren
  ( double , double , double   )
  {
    this.breite =   ;
    this.laenge =  ;
    this.hoehe  =  ;
  }

  // alle Seiten mit dem gleichen Wert initialisieren
  ( double  )
  {
    breite =  ;
    laenge =  ;
    hoehe  =  ;
  }


  // Instanzmethoden

}

Wenn eine Instanzvariable und ein Parameter den gleichen Bezeichner verwendet, geben wir die Instanzvariable des Objekts an, indem wir this.bezeichner verwenden, wie in dem oben stehenden Beispiel.



6.      Wir vervollständigen die Methode.     Die Dokumentation für die berechneVolumen() Methode besagt, dass sie folgendermaßen aussieht:

// Volumenberechnung der Box
double  berechneVolumen()
Die zu verwendende Formel ist: Volumen = Produkt aller drei Seiten
class Box
{
  // Instanzvariablen
  double breite;
  double laenge;
  double hoehe;


  // Konstruktoren
  Box ( double breite, double laenge, double hoehe )
  {
    this.breite  = breite;
    this.laenge  = laenge;
    this.hoehe   = hoehe;
  }

  Box ( double seite )
  {
    breite  = seite;
    laenge  = seite;
    hoehe   = seite;
  }

  // Instanzmethoden
  double berechneVolumen()
  {
    return  *  * ;
  }

}

(Natürlich können die drei Instanzvariablen in dem arithmetischen Ausdruck in beliebiger Reihenfolge verwendet werden.)



7.      Wir vervollständigen die nächste Methode.     Die Dokumentation für die berechneOberflaeche() Methode besagt, dass sie folgendermaßen aussieht: double berechneOberflaeche() . Es gibt für eine Box drei Paare von Seiten. Gegenüberliegende Seiten haben die gleiche Fläche, also sieht die Berechnung wie folgt aus:

2 * (Summe der Fläche aller eindeutigen Seiten)
class Box
{
  // Instanzvariablen
  double breite;
  double laenge;
  double hoehe;


  // Konstruktoren
  Box ( double breite, double laenge, double hoehe )
  {
    this.breite  = breite;
    this.laenge  = laenge;
    this.hoehe   = hoehe;
  }

  Box ( double seite )
  {
    breite  = seite;
    laenge  = seite;
    hoehe   = seite;
  }

  // Instanzmethoden
  double berechneVolumen()
  {
    return breite * laenge * hoehe;
  }

  double berechneOberflaeche()
  {
    return 2 * (  *  +
                  *  +
                  *  ) ;
  }

}


8.      An dieser Stelle ist das Kodieren der Box-Klassendefinition fertig. Angenommen das kleine Testprogramm (Klasse BoxTester) befindet sich in einer Datei mit dem Namen BoxTester.java und die komplette Definition der Box-Klasse in einer Datei mit dem Namen Box.java.

class BoxTester
{

  public static void main ( String[] args )
  {

     // eine Box mit den Seiten 2.5, 3.0 und 5.0 erzeugen

     Box box1 = new  Box( 2.5, 3.0, 5.0 );

     System.out.println( "Box1 Flaeche: "    + box1.berechneOberflaeche() +
                         "  Volumen: " + box1.berechneVolumen()  );

     // eine Box mit gleichen Seiten von 3.0 erzeugen

     Box box2 =   Box (  );

     System.out.println( "Box2 Flaeche: "    + box2.berechneOberflaeche() +
                         "  Volumen: " + box2.berechneVolumen()  );


  }
}


9.      Wir kompilieren die Dateien.     Jede der zwei Dateien muss kompiliert werden:

C:\javaNotes\beispiele>javac  

C:\javaNotes\beispiele>javac  



10.      Wir starten das Programm.     Der Java Bytecode-Interpreter muss mit der *.class Datei gestartet werden, die die main()-Methode enthält:

C:\javaNotes\beispiele>java  



Ende des Tests. Wer ihn wiederholen möchte, klickt im Browser auf "Aktualisieren".

Zurück zum Inhaltsverzeichnis.