zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Die verbesserte Version des Programm steht unten. Sie wird ganz ausgezeichnet funktionieren.

Besser gekapseltes Programm

Logisch betrachtet ist das Programm das gleiche wie zuvor. Aber dadurch, dass die Instanzvariablen als private deklariert wurden gibt es einen größeren Zwang zur Kapselung.

class Fuhrpark
{
  // Daten
  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) ;
  }

  // Methode
  double berechneMPG()
  {
    double summeMPG;

    summeMPG = stadtwagen.berechneMPG() + gelaendewagen.berechneMPG() ;

    return summeMPG/2.0;
  }
}

class Auto
{
  // Daten
  private int startMeilen;   // Tacho Anfangsstand Meilen
  private int endMeilen;     // Tacho Endstand Meilen
  private 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 ;
  }

}

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

FRAGE 11:

Ist es möglich (in der neuen Version des Programms) die Werte des Tachometers zu ändern?