Java
Mr. Dealer is trying to keep track of his new cars and used cars by writing a Java program. He needs your help in setting up his classes.
Implement a superclass named Car that contains a price instance variable, a getPrice method, and a 1-parameter constructor. The getPrice method is a simple accessor method that returns the price instance variable’s value. The 1-parameter constructor receives a cost parameter and assigns a value to the price instance variable based on this formula:
price = cost * 2;
Implement two classes named NewCar and UsedCar; they are both derived from the Car superclass. NewCar should contain a color instance variable (the car’s color). UsedCar should contain a mileage instance variable (the car’s odometer reading). The NewCar and UsedCar classes should each contain a 2-parameter constructor, an equals method, and a display method:
1. The equals method compares the values of instance variables (i.e., price and color for NewCar, and price and mileage for UsedCar).
2. The display method should print the values of all the instance variables within its class variables (i.e., price and color for NewCar, and price and mileage for UsedCar).
In the interest of elegance and maintainability, don’t forget to have your subclass constructors call your superclass constructors when appropriate.
Provide a driver class that tests your three car classes. Your driver class should contain this main method:
-------------------------------------
CODE PROVIDED BELOW:
public static void main(String[] args)
{
NewCar new1 = new NewCar(8000.33, "silver");
NewCar new2 = new NewCar(8000.33, "silver");
if (new1.equals(new2))
{
new1.display();
}
UsedCar used1 = new UsedCar(2500, 100000);
UsedCar used2 = new UsedCar(2500, 100000);
if (used1.equals(used2))
{
used1.display();
}
} // end main
------------------------------------
OUTPUT:
price = $16,000.66, color = silver // for new cars
price = $5,000.00, mileage = 100,000 // for used cars
Given below is the code for the question.
To indent code in eclipse , select code by pressing ctrl+a and then
indent using ctrl+i
Please do rate the answer if it was helpful. Thank you
Car.java
----
public class Car {
private double price;
public Car(double cost){
price = 2 * cost;
}
public double getPrice(){
return price;
}
}
NewCar.java
----
import java.text.NumberFormat;
public class NewCar extends Car{
private String color;
public NewCar(double cost, String col){
super(cost);
color = col;
}
public boolean equals(NewCar c){
if(getPrice() == c.getPrice() &&
color.equals(c.color))
return true;
else
return false;
}
public void display(){
NumberFormat format = NumberFormat.getCurrencyInstance();
System.out.println("price = " + format.format(getPrice()) + ",
color = " + color);
}
}
UsedCar.java
----
import java.text.NumberFormat;
public class UsedCar extends Car{
private int mileage;
public UsedCar(double cost, int mileage){
super(cost);
this.mileage = mileage;
}
public boolean equals(UsedCar c){
if(getPrice() == c.getPrice() && mileage ==
c.mileage)
return true;
else
return false;
}
public void display(){
NumberFormat format = NumberFormat.getCurrencyInstance();
System.out.println("price = " + format.format(getPrice()) + ",
mileage = " + NumberFormat.getInstance().format(mileage));
}
}
CarDriver.java
----
public class CarDriver {
public static void main(String[] args)
{
NewCar new1 = new NewCar(8000.33, "silver");
NewCar new2 = new NewCar(8000.33, "silver");
if (new1.equals(new2))
{
new1.display();
}
UsedCar used1 = new UsedCar(2500, 100000);
UsedCar used2 = new UsedCar(2500, 100000);
if (used1.equals(used2))
{
used1.display();
}
} // end main
}
output
----
price = Rs.16,000.66, color = silver
price = Rs.5,000.00, mileage = 100,000
Java Mr. Dealer is trying to keep track of his new cars and used cars by...