黑马程序员技术交流社区
标题:
为什么有的变量不初始化不报错,有的变量不初始化报错?
[打印本页]
作者:
疯狂程序
时间:
2013-3-25 20:14
标题:
为什么有的变量不初始化不报错,有的变量不初始化报错?
本帖最后由 疯狂程序 于 2013-3-26 13:29 编辑
为什么有的变量不初始化不报错,有的变量不初始化报错?
作者:
胡国彬
时间:
2013-3-25 20:44
在类中定义的成员变量如果你没有初始化java会自动帮你初始化,如果是数字会自动初始化成0,字符会初始化成'o',对象引用会初始化成null.
当然如果你定义的是局部变量就必须初始化了,否则编译会报错
作者:
lucy198921
时间:
2013-3-25 22:36
作为类成员变量,无论初始化与否都不会报错。
但是作为函数代码里的变量,无论什么类型不初始化全部都会报错。
作者:
薛飞
时间:
2013-3-26 00:04
成员变量定义完可以参加运算,因为它在堆内存中,有默认初始化值,java编译器不会报错;
而局部变量在栈内存中,没有默认初始化值,不能定义完就直接参加运算,java编译器会检查出来并报错。
作者:
夏凡
时间:
2013-3-26 11:02
首先,Java中的变量分为局部变量和全局变量
局部变量就是在方法中声明的变量,而全局变量就是在类中声明的变量
其次,在java中有这么一条规则,声明在方法中的变量在使用之前必须要初始化,否则不能通过编译。
而全局变量,默认会设置JAVA默认的值的,如int是0、String则是null等等
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2