一尘不染

递增1并将其与每个创建的对象相加?

java

class MyObject {

static int instanceCounter = 0;

static int counter = 0;

MyObject() {

instanceCounter++;

counter = counter + 1;

}

}

我正在使用静态整数获取此输出:

对象1的instanceCounter的值:5

MyObject的instanceCounter值:5

对象1的计数器值:1

对象2的计数器值:2

对象3的计数器值:3

对象4的计数器值:4

对象5的计数器值:5

但其显示

对象1的instanceCounter的值:5

MyObject的instanceCounter值: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);

}

}

如果我删除静态,这就是它所显示的

对象1的instanceCounter的值:5

MyObject的instanceCounter值:5

对象1的计数器值:1

对象2的计数器值:1

对象3的计数器值:1

对象4的计数器值:1

对象5的计数器值:1


阅读 217

收藏
2020-12-03

共1个答案

一尘不染

由于instanceCounter是静态变量,所以所有对象都共享相同的变量。由于在每个对象构造期间要递增instanceCounter,因此在创建5个对象结束时,其值为5。因此,在所有系统输出中,输出均为5。多数民众赞成在静态点

编辑
要实现您所需要的,请执行以下操作:

class MyObject  {

    static int instanceCounter = 0;

    int counter = 0;

    MyObject() 
    {
        instanceCounter++;
        counter = instanceCounter;
    }

}
2020-12-03