Question: Please would you help solve the question with these instructions below ( Tractor.java and testTractor.java is provided). Thank you Tractors Modification of the Tractor project.
Please would you help solve the question with these instructions below ( Tractor.java and testTractor.java is provided). Thank you
Tractors
Modification of the Tractor project. Make a copy of your testTractor Package, name it testLoader and make the following modifications and additions. Let us create a class hierarchy for tractors to use in a fleet management system. All of your classes should be in separate files within your project package. Name your package testLoader. Modify the base class named Tractor. The Tractor class will have a static attribute called Company. All tractors are owned by the same company. Create a class named Loader that inherits from Tractor. Loaders had a Bucket Size (1-5) the Bucket Size effects the RentalProfit by an additional $100-$500. You will need to Override the RentalProfit method to perform this calculation correctly. Create a fully parameterized constructor that uses a reference to super(). Override the toString to contain the base tractor information plus the Bucket Size option. Create a class called Harvester. Harvesters must be rented for at least 20 days. Override the setter for Rental days to reflect this. Harvesters may have a tow behind trailer option (1-3) that adds $1000-$3000 to the RentalProfit() calculation. Create a fully parameterized constructor that uses a reference to super(). Override the toString to contain the base tractor information plus the trailer option. In your test drivers main() method create a Tractor, Loader and a Harvester. Using the zero parameter constructor. Then use the set methods to set all attributes. Also create a Tractor, Loader and Harvester using the parameterized constructors. Set the company name to your name. Use the toString() methods to display the information for each tractor. Be sure to display the rentalProfit() calculation in your test driver.
The testTractor Package is below:
package testtractor;
public class testTractor {
public static void main(String[] args) { // Tractor object using the zero-parameter constructor Tractor tractor1 = new Tractor(); // Call setters to set value tractor1.setVehicleID("TH086"); tractor1.setRentalDays(5); tractor1.setRenetalRate(1000.0); // print details System.out.println(tractor1);
// Tractor using the parameterized constructor. Tractor tractor2 = new Tractor("ST98656", 400, 56); // getter methods to display information about the Tractor. System.out.println(); System.out.println("Vehicle ID: " + tractor2.getVehicleID()); System.out.println("Rental Rate: " + tractor2.getRenetalRate()); System.out.println("Rental Days: " + tractor2.getRentalDays());
// Create Tractor object Tractor tractor3 = new Tractor(); System.out.println(); // Set invalid data tractor3.setVehicleID(null); tractor3.setRentalDays(-1); tractor3.setRenetalRate(-400);
}
}
Please, the implementation of Tractor is provided below as requested:
package testtractor;
public class Tractor { private String vehicleID; private double renetalRate; private int rentalDays;
/** * zero-parameter constructor */ public Tractor() { super(); }
/** * fully parameterized constructor * * @param vehicleID * @param renetalRate * @param rentalDays */ public Tractor(String vehicleID, double renetalRate, int rentalDays) { // Call set methods setVehicleID(vehicleID); setRenetalRate(renetalRate); setRentalDays(rentalDays); }
/** * * @return rental profit */ public double rentalProfit() { return renetalRate * rentalDays; }
/** * @return the vehicleID */ public String getVehicleID() { return vehicleID; }
/** * @param vehicleID the vehicleID to set */ public void setVehicleID(String vehicleID) { // check vehicleID is not null if (vehicleID != null) { this.vehicleID = vehicleID; } else { System.out.println("Invalid Vehicle ID."); } }
/** * @return the renetalRate */ public double getRenetalRate() { return renetalRate; }
/** * @param renetalRate the renetalRate to set */ public void setRenetalRate(double renetalRate) { // Check renetalRate is positive if (renetalRate > 0) { this.renetalRate = renetalRate; } else { System.out.println("Invalid Rental Rate"); }
}
/** * @return the rentalDays */ public int getRentalDays() { return rentalDays; }
/** * @param rentalDays the rentalDays to set */ public void setRentalDays(int rentalDays) { if (rentalDays > 0) { this.rentalDays = rentalDays; } else { System.out.println("Invalid Rental Days"); } }
@Override public String toString() { return this.getClass().getSimpleName() + ", " + vehicleID + ", " + rentalDays + ", " + rentalDays + ""; }
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
