2 zyf4005 zyf4005 于 2016.04.22 16:10 提问

下面java代码:static Value3 v1, v2; 该怎么理解?请各位帮忙分析下。谢谢

class Value3 {
static int c = 0;

Value3() {
   c = 15;
}

Value3(int i) {
   c = i;
}

static void inc() {
   c++;
}

}

public class Count {
public static void prt(String s) {
System.out.println(s);
}

Value3 v = new Value3(10);
static Value3 v1, v2;//这一行理解为:创建初始化为static int c=0的 Value3 v1和Value3 v2对象,那为啥前面还加了static? 或者是这句话该怎么理解?
static {
   prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
   v1 = new Value3(27);
   prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
   v2 = new Value3(15);
   prt("v1.c=" + v1.c + "  v2.c=" + v2.c);
}

1个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.04.22 16:15
已采纳
 static就是静态,表示v1,v2是静态变量。
zyf4005
zyf4005 回复danielinbiti: 谢谢啊,懂了!
一年多之前 回复
danielinbiti
danielinbiti 回复zyf4005: 不能,static Value3 v1,v2;就是申明了2个静态实例变量v1,v2,是null,不是new 。如果后面没有初始化,v1.c会报空指针
一年多之前 回复
zyf4005
zyf4005 回复danielinbiti: 那static Value3 v1,v2;可否理解为static Value3 v1 = new Value(); static Value3 v2 = new Value();
一年多之前 回复
danielinbiti
danielinbiti 回复zyf4005: v1.c就是实例中的c变量的值
一年多之前 回复
danielinbiti
danielinbiti 回复zyf4005: 静态实例变量,v1,v2还是对象,只是是静态的而已
一年多之前 回复
zyf4005
zyf4005 不明白,假如是v1,v2是静态变量,那么下面的代码v1.c和v2.c又怎么理解?这里的v1 v2代表的不是对象吗?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!