class MyObject {
static int instanceCounter = 0;
static int counter = 0;
MyObject() {
instanceCounter++;
counter = counter + 1;
}
}
Run Code Online (Sandbox Code Playgroud)
我使用静态int来获得此输出:
instanceCounter对象1的值:5
instanceCounter for MyObject的值:5
对象1:1的计数器值
对象2的计数器值:2
对象3:3的计数器值
对象4:4的计数器值
对象5:5的计数器值
但它的显示
instanceCounter对象1的值:5
instanceCounter for MyObject的值:5
对象1:5的计数器值
对象2:5的计数器值
对象3:5的计数器值
对象4:5的计数器值
对象5:5的计数器值
我的跑步者班
class RunMyObject {
public static void main(String[] args) {
MyObject Object1 = new MyObject();
MyObject Object2 = new MyObject();
MyObject Object3 = new MyObject();
MyObject Object4 = new MyObject();
MyObject Object5 = new MyObject();
System.out.println(“Value of instanceCounter for Object 1: ” + Object1.instanceCounter);
System.out.println(“Value of instanceCounter for MyObject: ” + MyObject.instanceCounter);
System.out.println(“Value of Counter for Object 1: ” + Object1.counter);
System.out.println(“Value of Counter for Object 2: ” + Object2.counter);
System.out.println(“Value of Counter for Object 3: ” + Object3.counter);
System.out.println(“Value of Counter for Object 4: ” + Object4.counter);
System.out.println(“Value of Counter for Object 5: ” + Object5.counter);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我删除静态这是它显示的内容
instanceCounter对象1的值:5
instanceCounter for MyObject的值:5
对象1:1的计数器值
对象2:1的计数器值
对象3:1的计数器值
对象4:1的计数器值
对象5:1的计数器值
Raa*_*aam 14
由于instanceCounter是一个静态变量,因此所有对象都共享同一个变量.由于在每个对象构造期间递增instanceCounter,因此在创建5个对象的末尾,其值为5.因此,在所有sys out中输出为5.这是静止的
编辑
要实现您的需求,请执行以下操作:
class MyObject {
static int instanceCounter = 0;
int counter = 0;
MyObject()
{
instanceCounter++;
counter = instanceCounter;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65714 次 |
| 最近记录: |