Add: a5 close #9
This commit is contained in:
127
assignment5/Question4/Aircraft.java
Normal file
127
assignment5/Question4/Aircraft.java
Normal file
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Author: CHEN Yongyuan (Walter) 1930006025 from OOP(1007)
|
||||
* Date: 2022-04-24
|
||||
* Description: Aircraft.java inherited from Vehicle class
|
||||
*/
|
||||
|
||||
public class Aircraft extends Vehicle {
|
||||
/**
|
||||
* The altitude at which the aircraft is flying.
|
||||
*/
|
||||
private int altitude;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param speedLimit the speed limit of the aircraft
|
||||
* @param speed the speed of the aircraft
|
||||
* @param altitude the altitude of the aircraft
|
||||
* @throws BadSpeedSetting if the speed limit is negative
|
||||
* @throws BadAltitudeSetting if the altitude is negative
|
||||
*/
|
||||
public Aircraft(int speedLimit, int speed, int altitude) throws BadSpeedSetting, BadAltitudeSetting {
|
||||
super(speedLimit, speed);
|
||||
if (altitude < 0) {
|
||||
throw new BadAltitudeSetting("Altitude cannot be negative!");
|
||||
}
|
||||
this.altitude = altitude;
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter of altitude.
|
||||
*
|
||||
* @return the altitude of the aircraft
|
||||
*/
|
||||
public int getAltitude() {
|
||||
return altitude;
|
||||
}
|
||||
|
||||
/**
|
||||
* Aircraft can fly.
|
||||
*
|
||||
* @return true
|
||||
*/
|
||||
@Override
|
||||
public boolean canFly() {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test.
|
||||
*/
|
||||
public static void testAircraft() {
|
||||
try {
|
||||
Aircraft aircraft;
|
||||
|
||||
try {
|
||||
aircraft = new Aircraft(-10, 10, 10);
|
||||
} catch (BadSpeedSetting e) {
|
||||
System.out.println(e.getMessage().equals("Speed cannot be negative!"));
|
||||
}
|
||||
|
||||
try {
|
||||
aircraft = new Aircraft(10, -10, 10);
|
||||
} catch (BadSpeedSetting e) {
|
||||
System.out.println(e.getMessage().equals("Speed cannot be negative!"));
|
||||
}
|
||||
|
||||
try {
|
||||
aircraft = new Aircraft(10, 10, -10);
|
||||
} catch (BadAltitudeSetting e) {
|
||||
System.out.println(e.getMessage().equals("Altitude cannot be negative!"));
|
||||
}
|
||||
|
||||
aircraft = new Aircraft(100, 50, 3900);
|
||||
System.out.println(aircraft.getAltitude() == 3900);
|
||||
System.out.println(aircraft.getSpeed() == 50);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
// acceleration
|
||||
System.out.println(aircraft.accelerate(10) == 60);
|
||||
System.out.println(aircraft.getSpeed() == 60);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(10) == 70);
|
||||
System.out.println(aircraft.getSpeed() == 70);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(10) == 80);
|
||||
System.out.println(aircraft.getSpeed() == 80);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(10) == 90);
|
||||
System.out.println(aircraft.getSpeed() == 90);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(10) == 100);
|
||||
System.out.println(aircraft.getSpeed() == 100);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
try {
|
||||
aircraft.accelerate(10);
|
||||
} catch (ExceedSpeedLimit e) {
|
||||
System.out.println(e.getMessage().equals(
|
||||
"Current speed is 100. Accelerate 10 will exceed the speed limit!"));
|
||||
}
|
||||
// deceleration
|
||||
System.out.println(aircraft.accelerate(-20) == 80);
|
||||
System.out.println(aircraft.getSpeed() == 80);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(-20) == 60);
|
||||
System.out.println(aircraft.getSpeed() == 60);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(-20) == 40);
|
||||
System.out.println(aircraft.getSpeed() == 40);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(-20) == 20);
|
||||
System.out.println(aircraft.getSpeed() == 20);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
System.out.println(aircraft.accelerate(-20) == 0);
|
||||
System.out.println(aircraft.getSpeed() == 0);
|
||||
System.out.println(aircraft.canFly() == true);
|
||||
try {
|
||||
aircraft.accelerate(-20);
|
||||
} catch (NotEnoughSpeed e) {
|
||||
System.out.println(e.getMessage()
|
||||
.equals("Current speed is 0, not enough speed to decelerate!"));
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println("Error uncaught exception: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user