gpt4 book ai didi

java - 计算实例变量增加的次数

转载 作者:太空宇宙 更新时间:2023-11-04 06:14:37 25 4
gpt4 key购买 nike

我将实例变量设置为唯一值,

private int RegistrationCourse = 2015000;对象类中。

每次从 main 方法 调用此类(class)编号时,我希望将其增加 1,使其变为 20150012015002 等。

我认为要做到这一点,我必须创建一个类变量并将其初始化为0,因为它没有绑定(bind)到类。 (如有错误请指正)

private static int numCourses = 0;

然后我必须创建一个构造函数,并初始化其他实例变量,并按以下方式增加注册号:

numCourses =  registrationCourse;
numCourses++;

但是,我对处理构造函数非常陌生,所以我不明白为什么我不必创建一个 while 循环来执行此操作。我的另一个问题是,当我尝试返回注册类(class)编号时,对于这两种情况,它显然只返回最后一个递增的值,而我想返回一个不同的值,为每个对象增加 1。有什么解释吗?

最佳答案

您的静态值将在类实例的所有实例之间共享。如果您想维护实例构造期间适用的实际数字,则需要将其复制到非静态(实例绑定(bind))变量。

例如:

class c{
private int registrationCourse = 2015000;
private int incrementalValue = 0;
private static int nextIncrementalValue = 0;

public c(){
nextIncrementalValue +=1; //increase static, shared value.
this.incrementalValue = nextIncrementalValue; // set CURRENT value for later reference.
}
}

如果您现在要构造 3 个 c 实例,则每个实例都将具有相同的 nextIncrementalValue 值 (= 3),因为它们都共享相同的静态变量,但任何实例都将具有自己的 incrementalValue (= {1,2,3})

关于java - 计算实例变量增加的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com