The improved version of the program is below. It will run just fine.
Logically the program is the same as before, but
with the instance variables made private
there
is a greater enforcement of encapsulation.
class Fleet { // data private Car town; private Car suv; // constructor Fleet( int start1, int end1, double gal1, int start2, int end2, double gal2 ) { town = new Car( start1, end1, gal1) ; suv = new Car( start2, end2, gal2) ; } // method double calculateMPG() { double sumMPG; sumMPG = town.calculateMPG() + suv.calculateMPG() ; return sumMPG/2.0; } } class Car { // data private int startMiles; // Stating odometer reading private int endMiles; // Ending odometer reading private double gallons; // Gallons of gas used between the readings // constructor Car( int first, int last, double gals ) { startMiles = first ; endMiles = last ; gallons = gals ; } // methods double calculateMPG() { return (endMiles - startMiles)/gallons ; } } class FleetTester { public static void main ( String[] args) { Fleet myCars = new Fleet( 1000, 1234, 10, 777, 999, 20 ); System.out.println("Fleet average MPG= " + myCars.calculateMPG() ); } }
Is it possible (in the new version of the program) for the values of the odometer readings of the cars to change?