Я начинаю изучать JAVA. Меня попросили создать Автомобильную программу, которая отслеживает новые и подержанные автомобили. Я должен создать суперкласс под названием car, два производных класса под названием UsedCar и NewCar и класс Driver, который тестирует эти 3 класса.Метод отображения - ошибка вывода
Все классы компилируются и запускаются. Однако. Когда я его выводю, я получаю вывод мусора. Я не понимаю, где я ошибся. Я знаю, что класс драйвера прекрасен, а также класс супер-автомобилей. Где-то в классах UsedCar и NewCar это приводит к ошибкам вывода. Любые советы или предложения будут полезны.
Вот мой класс драйвера:
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
}//end class
Вот мой автомобиль Класс:
import java.util.*;
public class Car
{
//Variables
public Double price;
//Constructor
public Car(Double cost)//constructor to create instances of SavingsAccount
{
price = cost *2;
}
//GetPrice method
public Double getPrice()//method to get the cars' price
{
return price;//returns the value of the price
}
}//end class Car
Вот производные классы: NewCar
import java.util.*;
public class NewCar extends Car
{
//Variables
public String color = "silver";
NewCar new1 = new NewCar(8000.33, "silver");
NewCar new2 = new NewCar(8000.33, "silver");
//Constructor - Two Parameter
public NewCar (Double price, String color)//constructor to create instances of new car
{
super(price);
color = this.color;
}
//Equals Method
public boolean equals(Car NewCar)
{
if (NewCar == null)
{
return false;
}
else
{
return
price.equals(new1.price) &&
color.equals(new2.color);
}
} // end equals
//Display method
public void display()
{
System.out.println(" " + new1.price + new1.color);
}//end display method
}//end class NewCar
UsedCar
import java.util.*;
public class UsedCar extends Car
{
//Variables
private double mileage;
public String color = "silver";
UsedCar used1 = new UsedCar(2500, 100000);
UsedCar used2 = new UsedCar(2500, 100000);
//Constructor -Two Parameter
public UsedCar (double price, double mileage)//constructor to create instances of new car
{
super(price);
mileage = this.mileage;
}
//Equals Method
public boolean equals(Car UsedCar)
{
if (UsedCar == null)
{
return false;
}
else
{
return
price.equals(used1.price) &&
color.equals(used2.color);
}
} // end equals
//Display method
public void display()
{
System.out.println(" " + used1.price + used1.mileage);
}//end display
}//end class
Я не могу вставить свой вывод, но он выглядит так в командной строке, и он продолжается без остановок:
«на NewCar. (NewCar. Java: 11)»
О, ничего себе. Я понимаю, что я сделал не так, создавая новые объекты в каждом классе. Мне обязательно нужно вернуться и изучить эту главу больше! Кроме того, эти понятия, объясненные здесь, лучше, чем в книге. Теперь имеет смысл переопределить метод equals. – Fryguy