Files
oop/assignment5/Question5/ManyVehicles.java
2022-04-24 13:24:47 +08:00

59 lines
1.2 KiB
Java

/*
* Author: CHEN Yongyuan (Walter) 1930006025 from OOP(1007)
* Date: 2022-04-24
* Description: ManyVehicles class manipulate many vehicles
*/
import java.util.ArrayList;
public class ManyVehicles {
private ArrayList<Vehicle> vehicles;
/**
* Constructor.
*/
public ManyVehicles() {
// initialise instance variables
vehicles = new ArrayList<Vehicle>();
}
/**
* Add any kind of vehicle to the arraylist.
*
* @param v the vehicle to be added
*/
public void addVehicle(Vehicle v) {
vehicles.add(v);
}
/**
* Calculate the avergae speed of all vehicles.
*
* @return the average speed of all vehicles
*/
public double averageSpeed() {
double totalSpeed = 0;
for (Vehicle v : vehicles) {
totalSpeed += v.getSpeed();
}
return totalSpeed / vehicles.size();
}
/**
* Test.
*/
public static void testManyVehicles() {
try {
ManyVehicles mv = new ManyVehicles();
mv.addVehicle(new Car(100, 100));
mv.addVehicle(new Car(90));
mv.addVehicle(new Aircraft(100, 70, 3900));
mv.addVehicle(new Train(100, 60));
System.out.println(mv.averageSpeed() == 80.0);
} catch (Exception e) {
System.out.println("Error uncaught exception: " + e.getClass().getName() + e.getMessage());
}
}
}