2016-09-22 5 views
-1

私が探している出力は、mainで.getNumber()が呼び出されるたびに戻り値4が返されます。今は毎回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

カウンターを静的にする必要があります。そうすれば、クラスのすべてのインスタンスで共有されます。あなたのコンストラクタで、counter ++を実行します。

​​