2016-09-22 2 views
-1

Результат, который я ищу, для возвращаемого значения 4 каждый раз .getNumber() вызывается в main. Прямо сейчас я получаю вывод 0 каждый раз. Сначала вы найдете мой класс Car со счетчиком, затем выдержку из моего основного, где я создаю 4 объекта, затем вызываю метод .getNumber().Логическая ошибка с счетчиком в моем классе

public class Car{ 
    private String brand; 
    private int year; 
    private int price; 
    private int number; 
public Car(String b, int y, int p){ 
    brand = b; 
    year = y; 
    price = p; 
} 
public Car(){ 
    brand = "Chevy"; 
    year = 2005; 
    price = 3000; 
} 
public String getBrand(){ 
    return brand; 
} 
public int getYear(){ 
    return year; 
} 
public int getPrice(){ 
    return price; 
} 
public int getNumber(){ 
    return number; 
} 
public void setBrand(String b){ 
    brand = b; 
} 
public void setYear(int y){ 
    year = y; 
} 
public void setPrice(int p){ 
    price = p; 
} 
public void increment(){ 
    number++; 
} 
} 
Car car1 = new Car(); 
Car car2 = new Car("Ford", 2013, 20000); 
Car car3 = new Car("Audi", 2012, 25000); 
Car car4 = new Car(); 
    System.out.println("The total car number is: " + car1.getNumber()); 
    System.out.println("The total car number is: " + car2.getNumber()); 
    System.out.println("The total car number is: " + car3.getNumber()); 
    System.out.println("The total car number is: " + car4.getNumber()); 
+0

Почему, на ваш взгляд, ваш код печатает 0 каждый раз? –

+0

Я использую jgrasp на своем ноутбуке, и это результат, который я получаю. –

+0

Когда я запускаю программу, это мой вывод: Номер машины: 0 Общее количество автомобилей: 0 Общее количество автомобилей: 0 Общее количество автомобилей: 0 –

ответ

0

Вам необходимо сделать ваш счетчик поставленным. Таким образом, он используется для всех экземпляров класса. Тогда в вашем конструкторе вы делаете counter ++.

public class Car { 
    private int number; 
    private static int counter; 
    public Car() { 
    this.number = counter++; 
    } 
} 
Смежные вопросы