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=0 v2.c=0
v1.c=27 v2.c=27
v1.c=15 v2.c=15
ct.c=10
v1.c=10 v2.c=10
v1.c=11 v2.c=11
ct.c=11为什么?
{
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=0 v2.c=0
v1.c=27 v2.c=27
v1.c=15 v2.c=15
ct.c=10
v1.c=10 v2.c=10
v1.c=11 v2.c=11
ct.c=11为什么?
{
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);
}在
Value v=new Value(10);之前初始化
prt("ct.c="+ct.v.c);原来对于上面这段代码一直不解,难道ct.v.c的时候,又创建了另一个类变量c,即类变量没有被公用(汗)。现在看来不是这个原因,搞懂了,嘿。今天查看这个未结的贴,结贴距离发贴25天了,有点小进步。加油,坚持。