黑马程序员技术交流社区
标题:
静态变量初始化值问题
[打印本页]
作者:
冰刃
时间:
2016-4-24 18:44
标题:
静态变量初始化值问题
class Ces1 {
static int x;
}
public class Test {
public static void main(String[] args) {
System.out.println(Ces1.x);
}
}
请问为什么结果是0,我明明没有对x进行过初始化啊,也没有建立过Ces的对象,为什么直接使用未定义的变量没有问题?
作者:
小K哥
时间:
2016-4-24 19:01
因为成员变量有默认值,比如int型是0,double是0.0.因为该成员变量是静态成员变量,所以可以通过类名调用。
作者:
小K哥
时间:
2016-4-24 19:02
因为成员变量有默认值,比如int型是0,double是0.0.因为该成员变量是静态成员变量,所以可以通过类名调用。
作者:
冰刃
时间:
2016-4-24 19:05
成员变量不是只有创建对象的时候才有默认值吗? 我对象都没创建,哪来的默认值?
作者:
风语风雨
时间:
2016-4-24 22:40
冰刃 发表于 2016-4-24 19:05
成员变量不是只有创建对象的时候才有默认值吗? 我对象都没创建,哪来的默认值? ...
static是表示这个变量是静态的,静态的成员变量是保存在方法区的静态区,可以通过对象去访问,也可以不通过创建对象,直接用类去访问,成员变量系统都会默认初始化值的。整形的是0,浮点型的是0.0;字符串是dull。字符型的是'\u0000';布尔型的是false;
作者:
奉建兵
时间:
2016-4-24 22:53
系统自动初始化
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2