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的计数器值: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
对象1的计数器的值:5
对象2的计数器值:5
对象3的计数器值:5
对象4的计数器值: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
对象2的计数器值:1
对象3的计数器值:1
对象4的计数器值:1
对象5的计数器值:1
由于instanceCounter是静态变量,所以所有对象都共享相同的变量。由于在每个对象构造期间要递增instanceCounter,因此在创建5个对象结束时,其值为5。因此,在所有系统输出中,输出均为5。多数民众赞成在静态点
编辑 要实现您所需要的,请执行以下操作:
class MyObject { static int instanceCounter = 0; int counter = 0; MyObject() { instanceCounter++; counter = instanceCounter; } }