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 { // 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; } } class Auto { // Instanzvariablen 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 ; } // Instanzmethode 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() ); } }
Ist es möglich (in der neuen Version des Programms) die Werte des Tachometers zu ändern?