zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Siehe unten.

Konstruktoren, die innerhalb eines Konstruktors verwendet werden

class Fuhrpark
{
  // Instanzvariablen
  Auto stadtwagen;
  Auto gelaendewagen;

  // Konstruktor
  Fuhrpark( int start1, int end1, double gal1,
         int start2, int end2, double gal2 )
  {
    stadtwagen     = new Auto(start1, end1, gal1);
    gelaendewagen  = new Auto(start2, end2, gal2);
  }

  // Instanzmethoden


}

class FuhrparkTester
{
  public static void main(String[] args)
  {
    Fuhrpark meineAutos = new Fuhrpark(
      1000, 1234, 10, 777, 999, 20);
  }
}

Dem Konstruktor für Fuhrpark werden alle Information (in seinen Parametern) gegeben, die er braucht, um zwei Autos zu erstellen. Er verwendet dafür den Auto-Konstruktor (zweimal). Die Auto-Objektreferenzen werden sicher in den Instanzvariablen der Fuhrpark-Objekte aufbewahrt.

Üblicherweise würden wir sagen, dass meineAutos ein Fuhrpark-Objekt ist, das aus zwei Auto-Objekten besteht. Aber seien wir vorsichtig: Die Klassendefinition von Fuhrpark enthält nicht die Definition von Auto, und zur Laufzeit enthält der Speicher aus dem ein Fuhrpark-Objekt besteht nicht den Speicher aus dem die zwei Auto-Objekte bestehen.

FRAGE 7:

Wenn ein Fuhrpark-Objekt konstruiert wird, wie viele neue Objekte gibt es?