Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串的实例计数器-Java_Java_String_Instance - Fatal编程技术网

字符串的实例计数器-Java

字符串的实例计数器-Java,java,string,instance,Java,String,Instance,串 汽车的名字。名称是通过将单词“Car”连接到此对象的实例号而形成的。例如,第一个实例是Car1,第二个实例是Car2,依此类推 所以我创建了一个名为car的字符串,现在我需要在创建新实例时使其应用递增的数字 public class CarDash { public String Car ="Car"; public static int instanceNumber; } 然后它需要计算创建了多少实例 为所有类实例共享的一个类变量。 实例编号 整数 跟踪创建的实例数 我是否应该

  • 汽车的名字。名称是通过将单词“Car”连接到此对象的实例号而形成的。例如,第一个实例是Car1,第二个实例是Car2,依此类推
所以我创建了一个名为car的字符串,现在我需要在创建新实例时使其应用递增的数字

public class CarDash {
public String Car ="Car"; 
public static int instanceNumber;
}
然后它需要计算创建了多少实例

  • 为所有类实例共享的一个类变量。 实例编号 整数 跟踪创建的实例数
我是否应该在调用某个方法时添加计数器?或者在命名/创建新车时将其计算在内

    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
预递增),然后使用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

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

}

输出:: 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

call
instanceNumber++
在构造函数中,构造函数是否需要返回语句?构造函数是否需要返回语句?不,构造函数中应该没有足够的逻辑来要求任何返回语句。您期望的输出是什么?你想让你的变量名自己命名为Car+1吗?我想让它输出Car1,Car2,Car3,等等更好的方法是输出所有实例的Car3你在开玩笑吗@B.Kel?它不能,因为它是primitive int。我已经运行了它,正在获取Car1 Car2 Car3。请确保编译和运行正确。请,将instanceNumber设为私有!而“Car”应该是一个常量:按惯例为final和大写
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());
}