字符串的实例计数器-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,依此类推
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
Car3call
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());
}