Проблема заключается в вашем конструкторе по умолчанию :
public Car()
{
year = 0;
brand = null;
price = 0;
number = 0;
}
Все установлено на 0
или null
, что означает ваш фактический вывод (хотя на момент написания этой статьиВы еще не опубликовали это), вероятно, что-то вроде:
This car is , year 0, price 0
This car is Ford, year 2011,price 22000
This car is Audi, year 2012, price 25000
This car is Cadillac, year 0, price 0
The total car number is: 0
The total car number is: 4
The total car number is: 4
The total car number is: 0
Или что-то в этом роде.Это потому, что вы установили все переменные-члены на 0
или null
.
Попробуйте изменить конструктор по умолчанию на что-то вроде этого:
public Car()
{
// This car is Chevy, year 2005, price 3000
year = 2005;
brand = "Chevy";
price = 3000;
number = 4;
}
Таким образом, когда вы создаете экземпляр (т.е. создайте) объект без параметров (как с автомобилем 1 и автомобилем 4), он автоматически заполнит эти значения для вас.
РЕДАКТИРОВАТЬ: Как указал Мохд Акбар, вытакже есть другая проблема с вашим кодом, а именно number
является переменной экземпляра , а не статической .
Возможно, вы захотите изменить число набыть похожим на этот пример , вот так:
static int number = 0;
И измените ваш конструктор так, чтобы он соответствовал:
public Car()
{
// This car is Chevy, year 2005, price 3000
year = 2005;
brand = "Chevy";
price = 3000;
number++;
}
Вместо моего первоначального предложения number = 4;
Редактировать 2: Другая проблема, с которой вы можете столкнуться, состоит в том, что ваши аргументы вышли из строя на другом конструкторе:
public Car( int y, String b, int p)
Ваш другой класс (тот, который вам дали) ожидает аргументы как это:
public Car(String b, int y, int p)
И это должно исправить otее проблема у вас.