这个static 是怎么算的 c1的count的值为啥是2啊

package com.pp;

class Count{
private int serial;
static int counter=0;
Count(){
count| U A h X ( }er++;
serial=counter;
}
int getSerial(){
return serial;
}
int getCounter(){
return counter;
}
}
publicj i } class 例子 {
public static void main(String args[])6 - W R F 7 : v E{
Count c1=new Count();
Count c2=new Count();
System.out.println("c1的seriS Y r N T Zal值:"+c1.getSerial() );
System.out.println("c1的count值:"+c1.getCounter() );
System.out.pF x e trintln("c2的serial值:"w ` | ?+c2.getSerial() );
System.out.printlV , o H P Pn("c2的count值:"+c2.getCounter() );
}

}

c1的serial值:1
c1的count值:2
c2的sn , O ( Qerial值:2
c2的count值:2

回答

Count c1=new Count();
Count c2=new Count();
因为你首先连续调用了2次new,也就是P * q K 4造函Q t o i S数调用了2次
所以之后输出无论c1还是c2的count都是2。

你要看到1,可以写
Cof ( Y k P / gunt c1=new Count();
System.out.printY . B $ln("c1的serial值:"+c1.getSerial() );
System.out.println("c1的count值:"+c1.getCounter() );
Count c2=new Count();
SystQ ] |em.out.println("c2的serial值:p ) G - s"+c2.? I ; W EgetSerial() );
System.out.5 [ R 4 R m aprintln("c2的count值:"+cx W ^ ! x ? t r 62.getCounter() );

问题解决的话,请点下采纳