2016-12-09 34 views
2

字符串實例計數器爲一個字符串 - Java的

  • 汽車的名字。該名稱是通過將單詞「Car」連接到該對象的實例編號形成的。例如,第一個實例是Car1,第二個實例是Car2,等等。

所以我創建了一個名爲car的字符串,現在我需要在創建新實例時使其應用遞增數字。

public class CarDash { 
public String Car ="Car"; 
public static int instanceNumber; 
} 

然後它需要計算有多少實例被創建了所有的類實例共享

  • 一類變量。 instanceNumber 整數 跟蹤創建的實例的數量。

我是否應該在某個方法被調用時添加一個計數器?或者在新車被命名/創建時計算它嗎?

instanceNumber++; 

我不知道如果我作出任何意義......

+0

調用'instanceNumber ++;'在你的構造器中 –

+0

構造函數是否需要返回語句? –

+0

*構造函數是否需要返回語句?* **否構造函數中不應有足夠的邏輯來需要任何返回語句** –

回答

0

你只需要創建一個構造函數和遞增實例號(使用++instanceNumber預增),然後用實例號變量設置的車的價值。

所以你的構造函數將類似於下面。

public CarDash(){ 
    Car="Car"+ (++instanceNumber); 
} 

全班同學將如下

public class CarDash { 
public String Car = "Car"; 
public static int instanceNumber; 

public CarDash(){ 
    this.Car="Car"+ (++instanceNumber); 
} 

public static void main(String[] args) { 
    CarDash car=new CarDash(); 
    CarDash car1=new CarDash(); 
    CarDash car2=new CarDash(); 

    System.out.println(car.Car+" "+car1.Car+" "+car2.Car); 
} 
} 

出認沽將是如下。

Car1 Car2 Car3 
+0

謝謝,這個工作完美! –

+0

請讓instanceNumber爲私人!和「汽車」應該是一個常數:按慣例的最終和大寫 –

0

嘗試像下面。

public class CarDash { 
public String Car ="Car"; 
public static int instanceNumber; 

CarDash() { 
    instanceNumber++; 
    Car = Car + instanceNumber; 
} 

public static int getInstanceCount() { 
    return instanceNumber; 
} 

} 
0

你可以做instanceNumber ++;在你的構造函數中。 但是,如果您將instanceNumber設置爲stati,請特別注意,因爲這將由所有實例共享。 因此,在你的情況下(假設你有10個實例),你將獲得所有實例的名稱爲Car10。 例如

public class CarDash { 
    public String Car ="Car"; 
    public static int instanceNumber; 

public CarDash() { 
    instanceNumber++; 
} 

public String print(){ 
    return Car+instanceNumber; 
} 

public static void main(String[] args) { 
    CarDash carDash=new CarDash(); 
    CarDash carDash1=new CarDash(); 
    CarDash carDash2=new CarDash(); 
    System.out.println(carDash.print()); 
    System.out.println(carDash1.print()); 
    System.out.println(carDash2.print()); 
} 

}

輸出:: 的Car3 的Car3 的Car3

更好的辦法:

public class CarDash2 { 
public String Car ="Car"; 
public static int instanceNumber; 
public int carId; 

public CarDash2() { 
    instanceNumber++; 
    carId=instanceNumber; 
} 

public String print(){ 
    return Car+carId; 
} 

public static void main(String[] args) { 
    CarDash2 carDash=new CarDash2(); 
    CarDash2 carDash1=new CarDash2(); 
    CarDash2 carDash2=new CarDash2(); 
    System.out.println(carDash.print()); 
    System.out.println(carDash1.print()); 
    System.out.println(carDash2.print()); 
} 

}

輸出:: 分享幫助 Car2 Car3

+0

更好的方法是輸出Car3的所有實例 –

+0

你在開玩笑@ B.Kel嗎?它不能,因爲它是原始的int。 –

+0

我已經運行它並獲得Car1 Car2 Car3。 –

相關問題