增加1并将其与每个创建的对象一起添加?

Man*_*ram 5 java oop

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)