Java Programming II - 2015: Exercise Java Basic Review




Submission Guide:
- Due Date:  Before the next week's exercise class (April 16, 2015).
- Create a directory ~/java2/ex-review1/ and do a command "chmod 705 ~/java2/ex-review1", and save your answers to the directory.


In this exercise, you will review what you have learned in the Java Programming 1 class. You will design an abstract class and its subclasses to exercise Java polymorphism.

[Question] Designing Vehicle class and Its Subclasses

There are several Vehicles for transportation such as Car, MiniVan, and Truck.  Details of the classes for the vehicles are shown in the Figure 1.  

Request of the question:
Write Java program code to realize the Figure 1 to show the running result below referring to the template of main method.

Description of the fields and methods of the classes as follows:

 1. For Fields

2. For Methods

3. Some conditions to write methods

Calss Diagrams
 Figure 1. Classes for Question


---------------------------------------------------------

public class VehicleTest {

    public static void describe(Vehicle v) {
        System.out.println(v);
    }

    public static void main(String[] args) {
        Vehicle vehicles[] = {
         new Car("Camley", "Toyota", "Suzuki", "Gasoline", 70., 15.15, 5),
         new Car("Aqua", "Toyota", "Nakajima", "Hybrid", 36., 40.0, 5),
         new MiniVan("Sienna", "Toyota", "Tanaka", "Gasoline", 75.,  9.0, 8, true),
         new MiniVan("Odyssey", "Honda", "Kikuchi", "Diesel", 56., 11.0, 8, false),
         new MiniVan("Presage", "Nissan", "Shirotora", "Gasoline", 60., 7.0, 7, false),
         new Truck("Tundra", "Toyota", "Sugai", "Diesel", 100., 6.76, 5, 310),
         new Truck("Ridgeline", "Honda", "Watanabe", "Diesel", 83.279, 7.23, 5, 250)
            };

        PetroleumPrice priceInfo = new PetroleumPrice(143., 99.4);
           
        for(Vehicle v: vehicles) {
                  describe(v);
        System.out.println("Movable distance: " + v.movableDistance() + " Km");
        System.out.println("Cost for 100 Km: " + v.costFor100Km(priceInfo) + " Yen");
        System.out.println();
         }
        System.out.println();
        System.out.println("After Aircondition is ON\n");
        for(Vehicle v: vehicles) {
        v.setAirConON();
                  describe(v);
        System.out.println("Movable distance: " + v.movableDistance() + " Km");
        System.out.println("Cost for 100 Km: " + v.costFor100Km(priceInfo) + " Yen");
            System.out.println();
         }

    }  // end of main
}
---------------------------------------------------------

---------------------------------------------------------

ModelName: Camley, Company: Toyota, Owner: Suzuki, EngineType: Gasoline, TankSize: 70.0, FuelConsumption: 15.15, NumberOfSeat: 5
Movable distance: 1060.5 Km
Cost for 100 Km: 943.8943894389439 Yen

ModelName: Aqua, Company: Toyota, Owner: Nakajima, EngineType: Hybrid, TankSize: 36.0, FuelConsumption: 40.0, NumberOfSeat: 5
Movable distance: 1440.0 Km
Cost for 100 Km: 357.5 Yen

ModelName: Sienna, Company: Toyota, Owner: Tanaka, EngineType: Gasoline, TankSize: 75.0, FuelConsumption: 9.0, NumberOfSeat: 8, HasAutoDoor: true
Movable distance: 675.0 Km
Cost for 100 Km: 1588.888888888889 Yen

ModelName: Odyssey, Company: Honda, Owner: Kikuchi, EngineType: Diesel, TankSize: 56.0, FuelConsumption: 11.0, NumberOfSeat: 8, HasAutoDoor: false
Movable distance: 616.0 Km
Cost for 100 Km: 903.6363636363636 Yen

ModelName: Presage, Company: Nissan, Owner: Shirotora, EngineType: Gasoline, TankSize: 60.0, FuelConsumption: 7.0, NumberOfSeat: 7, HasAutoDoor: false
Movable distance: 420.0 Km
Cost for 100 Km: 2042.857142857143 Yen

ModelName: Tundra, Company: Toyota, Owner: Sugai, EngineType: Diesel, TankSize: 100.0, FuelConsumption: 6.76, NumberOfSeat: 5, HorsePower: 310
Movable distance: 676.0 Km
Cost for 100 Km: 1470.414201183432 Yen

ModelName: Ridgeline, Company: Honda, Owner: Watanabe, EngineType: Diesel, TankSize: 83.279, FuelConsumption: 7.23, NumberOfSeat: 5, HorsePower: 250
Movable distance: 602.10717 Km
Cost for 100 Km: 1374.8271092669431 Yen


After Aircondition is ON

ModelName: Camley, Company: Toyota, Owner: Suzuki, EngineType: Gasoline, TankSize: 70.0, FuelConsumption: 13.635, NumberOfSeat: 5
Movable distance: 954.4499999999999 Km
Cost for 100 Km: 1048.7715438210487 Yen

ModelName: Aqua, Company: Toyota, Owner: Nakajima, EngineType: Hybrid, TankSize: 36.0, FuelConsumption: 36.0, NumberOfSeat: 5
Movable distance: 1296.0 Km
Cost for 100 Km: 397.22222222222223 Yen

ModelName: Sienna, Company: Toyota, Owner: Tanaka, EngineType: Gasoline, TankSize: 75.0, FuelConsumption: 7.2, NumberOfSeat: 8, HasAutoDoor: true
Movable distance: 540.0 Km
Cost for 100 Km: 1986.111111111111 Yen

ModelName: Odyssey, Company: Honda, Owner: Kikuchi, EngineType: Diesel, TankSize: 56.0, FuelConsumption: 8.8, NumberOfSeat: 8, HasAutoDoor: false
Movable distance: 492.80000000000007 Km
Cost for 100 Km: 1129.5454545454545 Yen

ModelName: Presage, Company: Nissan, Owner: Shirotora, EngineType: Gasoline, TankSize: 60.0, FuelConsumption: 5.6000000000000005, NumberOfSeat: 7, HasAutoDoor: false
Movable distance: 336.00000000000006 Km
Cost for 100 Km: 2553.5714285714284 Yen

ModelName: Tundra, Company: Toyota, Owner: Sugai, EngineType: Diesel, TankSize: 100.0, FuelConsumption: 5.408, NumberOfSeat: 5, HorsePower: 310
Movable distance: 540.8000000000001 Km
Cost for 100 Km: 1838.01775147929 Yen

ModelName: Ridgeline, Company: Honda, Owner: Watanabe, EngineType: Diesel, TankSize: 83.279, FuelConsumption: 5.784000000000001, NumberOfSeat: 5, HorsePower: 250
Movable distance: 481.685736 Km
Cost for 100 Km: 1718.5338865836789 Yen

---------------------------------------------------------