字符串的实例计数器 - Java

Instance Counter for a String - Java

字符串

所以我创建了一个名为 car 的字符串,现在我需要让它在创建新实例时应用递增数字。

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

然后它需要计算创建了多少个实例

我是否应该在调用某个方法时添加一个计数器?或者在新车 named/created?

时计算
    instanceNumber++;

不知道我说的有没有道理...

像下面这样尝试。

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

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

public static int getInstanceCount() {
   return instanceNumber;
}

}

您只需要创建一个构造函数并递增 instanceNumber(使用 ++instanceNumber pre-increment ),然后使用 instanceNumber 变量设置汽车值。

因此您的构造函数将类似于以下内容。

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

整个class如下

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

你可以做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());
}

}

输出:: 车3 车3 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());
}

}

输出:: 车1 车2 Car3