zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Siehe unten.

Ausführbare Version des Programms

Hier ist die vollständige Version des Programms mit den neuen Methoden. Nehmen Sie sich die Zeit zu studieren wie die Dinge zusammenpassen. Beachtet, wie das große Objekt (ein Fuhrpark) aus kleineren Objekten (Autos) zusammengesetzt ist, und wie die Methoden des großen Objekts aus den Methoden der kleineren Objekte bestehen.

class Fuhrpark
{
  // Instanzvariablen
  private Auto stadtwagen;
  private 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);
  }

  // Instanzmethode
  double berechneMPG()
  {
    double summeMPG;
    summeMPG = stadtwagen.berechneMPG() +
               gelaendewagen.berechneMPG();
    return summeMPG/2.0;
  }

  void auftanken(
    int stadtTacho, double stadtGalls,
    int gelaendeTacho, double gelaendeGalls)
  {
    stadtwagen.auftanken(stadtTacho, stadtGalls);

    gelaendewagen.auftanken(gelaendeTacho, gelaendeGalls);
  }
}

class Auto
{
  // Daten
  int startMeilen;   // Tacho Anfangsstand Meilen
  int endMeilen;     // Tacho Endstand Meilen
  double gallonen;   // verbrauchte Gallonen

  // Konstruktor
  Auto(int startTacho, int endTacho, double galls)
  {
    startMeilen = startTacho;
    endMeilen   = endTacho;
    gallonen    = galls;
  }

  // Methoden
  double berechneMPG()
  {
    return (endMeilen - startMeilen)/gallonen;
  }

  void auftanken(int aktuellerTacho,double getankteGalls)
  {
     startMeilen  =  endMeilen;
     endMeilen    =  aktuellerTacho;
     gallonen     =  getankteGalls;
  }
}

class FuhrparkTester
{
  public static void main (String[] args)
  {
    Fuhrpark meineAutos = new Fuhrpark(
      1000, 1234, 10, 777, 999, 20);
    System.out.println(
      "durchschnittlicher MPG Fuhrpark = " +
        meineAutos.berechneMPG() );

    meineAutos.auftanken( 1434, 10, 1099, 10 );
    System.out.println(
      "neuer durchschnittlicher MPG Fuhrpark = " +
        meineAutos.berechneMPG() );
  }
}

FRAGE 15:

Sind wir abgefüllt, davon?