为什么第五行的运行结果为10???
class Value{static int c=0;
Value(){
c=15;
}
Value(int i){
c=i;
}
static void inc(){
c++;
}
}
class Count{
public static void prt(String s){
System.out.println(s);
}
Value v=new Value(10);
static Value v1,v2;
static{
prt("v1.c="+v1.c+"v2.c="+v2.c);
v1=new Value(27);
prt("v1.c="+v1.c+"v2.c="+v2.c);
v2=new Value(15);
prt("v1.c="+v1.c+"v2.c="+v2.c);
}
public static void main(String[] args){
Count ct=new Count();
prt("ct.c="+ct.v.c);
prt("v1.c="+v1.c+"v2.c="+v2.c);
v1.inc();
prt("v1.c="+v1.c+"v2.c="+v2.c);
prt("ct.c="+ct.v.c);
}
}
运行结果如下:
v1.c=0v2.c=0
v1.c=27v2.c=27
v1.c=15v2.c=15
ct.c=10
v1.c=10v2.c=10
v1.c=11v2.c=11
ct.c=11 static代码块先于Value v=new Value(10)执行 求问这句话可以用static来创建实例对象吗
static Value v1,v2;
页:
[1]