Answer:
Here is Automobile.java
class Automobile { //class name
private int ID, year, milesPerGallon, speed = 0; // private member variables of Automobile of int type
private String model, vinNo, make, color; // private member variables of Automobile of String type
public void setID(int ID){ //mutator method to set ID
if (ID >= 0 && ID <= 9999) // checks ID should not be negative or more than 9999
this.ID = ID;
else this.ID = 0; } //if ID is negative or greater than 9999 then set ID to 0
public void setModel(String model){ // mutator method to set model
this.model = model; }
public void setYear(int year){//
mutator method to set year
if (year >= 2000 && year <= 2017)
//checks that year should not be earlier than 2000 or later than 2017
this.ID = ID;
else this.year = 0; }
//if year is less than 2000 or greater than 2017 then set year to 0
public void setVinNo(String vinNo){ //mutator method to set vin number
this.vinNo = vinNo; }
public void setMilesPerGalon(int milesPerGallon){ //mutator method to set miles per gallon
if (milesPerGallon >= 10 && year <= 60) //checks that miles per gallon should not be less than 10 or more than 60
this.milesPerGallon = milesPerGallon;
else this.milesPerGallon = 0; }
//if it is more than 60 or less than 10 then set miles per gallon to 0
public void setSpeed(int speed){
//mutator method to set speed
this.speed = speed; }
public void setMake(String make){ //mutator method to set make
this.make = make; }
public void setColor(String color){ //mutator method to set color
this.color = color; }
public int getID()
//accessor method to get or access ID
{return ID;}
//returns the current ID
public String getModel()
//accessor method to get or access model
{return model;}
//returns the current model
public int getYear()//
accessor method to get or access year
{return year;}
//returns the current year
public String getVinNo()
// accessor method to get or access vin number
{return vinNo;}
//returns the current vin number
public int getMilesPerGallon()
//accessor method to get or access miles per gallon
{return milesPerGallon;}
//returns the current miles per gallon
public int getSpeed()
//accessor method to get or access speed
{return speed;}
//returns the current speed
public String getMake()
//accessor method to get or access make
{return make;}
//returns the current make
public String getColor()
//accessor method to get or access color
{return color;} //returns the current color
public int Accelerate() { //method that increase speed by 5
setSpeed(speed + 5);
//calls set speed to add 5 to the speed field
return speed; }
//returns the speed after increasing 5
public int Brake() {
//method that decreases speed by 5
setSpeed(speed - 5);//calls set speed to subtract 5 from the speed field
return speed; }
//returns the speed after decreasing 5
public int Accelerate(int spd) { //overloading methods for Accelerate()that accepts a single parameter spd
setSpeed(speed + spd); //increases speed up to specified value of spd
return speed; }
public int Brake(int spd) { //overloading methods for Brake()that accepts a single parameter spd
setSpeed(speed - spd);
//decreases speed up to specified value of spd
return speed; }
public Automobile(int ID, String make, String model, int year, String vinNo, int milesPerGallon, int speed, String color){ //constructor that accepts arguments for each field value and uses the set methods to assign the values
setID(ID);
setModel(model);
setYear(year);
setVinNo(vinNo);
setMilesPerGalon(milesPerGallon);
setSpeed(speed);
setMake(make);
setColor(color); } }
Explanation:
Here is TestAutomobiles.java
public class TestAutomobiles { //class name
public static void main(String args[]) { //start of main method
Automobile auto = new Automobile(123, "ABC", "XYZ", 2010, "MMM", 30, 150, "White"); //creates an object of Automobile class and calls its constructor passing the values for each of the fields
System.out.println("Initial Speed: " + auto.getSpeed()); //calls getSpeed method to get the current speed using object auto. The current speed is 150
System.out.println("Speed after applying acceleration: " + auto.Accelerate()); //calls Accelerate() method to increase the current speed to 5
System.out.println("Speed after applying brake: " + auto.Brake()); //calls Brake() method to decrease the current speed to 5
System.out.println("Speed after applying acceleration: " + auto.Accelerate(180)); //calls overloading Accelerate() method to increase the current speed to 180
System.out.println("Speed after applying brake: " + auto.Brake(50)); } } //calls overloading Brake() method to decrease the current speed to 50
//The screenshot of the output of the program is attached.