Die verbesserte Version des Programm steht unten. Sie wird ganz ausgezeichnet funktionieren.
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() ); } }