字符串的实例计数器 - Java

时间:2016-12-09 05:07:33

标签: java string instance

字符串

  • 汽车的名称。该名称是通过将单词“Car”连接到该对象的实例编号而形成的。例如,第一个实例是Car1,第二个实例是Car2,依此类推。

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

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

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

  • 为所有类实例共享的一个类变量。 实例号 整数 跟踪创建的实例数。

每当调用某种方法时,我应该添加一个计数器吗?或者在命名/创建新车时计算它?

    instanceNumber++;

我不知道我是否有任何意义......

3 个答案:

答案 0 :(得分:0)

尝试如下。

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

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

public static int getInstanceCount() {
   return instanceNumber;
}

}

答案 1 :(得分:0)

您只需要创建一个构造函数并增加instanceNumber(使用++instanceNumber预增量)然后使用instanceNumber变量设置car值。

所以你的构造函数将类似于下面的内容。

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

答案 2 :(得分:0)

你可以做instanceNumber ++;在你的构造函数中。 但是如果你将instanceNumber作为stati,请特别注意,因为这将由所有实例共享。 因此,在您的情况下(假设您有10个实例),您将获得所有实例的名称Car10。 e.g。

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());
}

}

输出:: CAR1 CAR2 的Car3