黑马程序员技术交流社区
标题:
问一个变量初始化问题
[打印本页]
作者:
黑马-刘心武
时间:
2012-8-9 19:13
标题:
问一个变量初始化问题
变量初始化问题,为什么只有第二种情况编译通过?
(1)
static final int x;
public static void main(String[] args)
{
System.out.println(x);
}
(2)
static int x;
public static void main(String[] args)
{
System.out.println(x);
}
(3)
public static void main(String[] args)
{
int x;
System.out.println(x);
}
复制代码
作者:
杨彪
时间:
2012-8-9 19:21
(1)
static final int x;
一个变量既是final又是static的,我们必须在声明变量时直接赋值
public static void main(String[] args)
{
System.out.println(x);
}
(3)
public static void main(String[] args)
{
int x;
因为它在局部变量里 因为没有默认值。只能按照声明,赋值,使用的步骤。
System.out.println(x);
}
作者:
杨彪
时间:
2012-8-9 19:26
补充(1)
static块在类被加载的时候就执行了
如果没有赋初始值的话,java虚拟机会报错
作者:
周世阳
时间:
2012-8-9 19:33
1).凡事final变量必须在定义的时候赋值
2).全局变量是有默认值的,int的默认值是0,所以mian方法可以输出x-->0;
3).不同于全局变量,局部变量没有默认值,如果没有复制就调用变量,编译器就会报错,表明局部变量没有被初始化
作者:
魏-玉-彪
时间:
2012-8-9 19:42
第一种情况,static final int x; 静态终结变量,只声明,没赋值,而且这个值已经无法赋了。
第三种情况,int x; 是定义在静态的主函数main方法中的局部变量。局部变量没有默认值,
第二种情况,static int x; 打印的是默认值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2