黑马程序员技术交流社区

标题: 关于定义变量是否赋值的问题 [打印本页]

作者: 刘 佳    时间: 2012-9-13 23:08
标题: 关于定义变量是否赋值的问题
本帖最后由 刘 佳 于 2012-9-14 01:17 编辑

看到视频第五天第七小节。讲到面向对象(封装private)。里面老师举例一段代码。以前学习是变量得赋值,但这段代码只写了 int x;  然后后面又讲了有个初始化值。到底怎么个意思,可不可以这样定义,求解。
作者: 孙岳    时间: 2012-9-13 23:15
方法中的变量需要赋初值,否则值是一个不确定的数。
但是类中的成员变量可以不赋初值,因为虚拟机会自动帮它初始化成默认值。
int类型是0,boolean类型是false,引用类型是null,等等。
作者: 李菁    时间: 2012-9-13 23:15
如果没有调用到这个变量,这样定义是不会报错的。
作者: 广驰    时间: 2012-9-13 23:18
成员变量基本数据类型只要建立了都有默认值,而引用型,也就是类的实体对象,其实建立一个存放类实体对象内存地址的一个区域,默认里面就是空
作者: 孙含庆    时间: 2012-9-13 23:24
类成员位置的变量可以只定义,不进行初始化赋值,因为系统会给默认值,我们可以在调用这个变量时再初始化并赋值。
作者: 王金科    时间: 2012-9-13 23:24

  1. public class  Test
  2. {
  3.         static int x;//成员变量
  4.         static boolean boo;//成员变量
  5.         static String str;//成员变量
  6.         public static void main(String[] args) {
  7.                 System.out.println(x);//打印结果为0
  8.                 System.out.println(boo);//结果为false
  9.                 System.out.println(str);//结果为null
  10.                
  11.                 int i;
  12.                 System.out.println(i);//编译失败
  13.                
  14.         }
  15. }
复制代码
成员变量有默认初始化值,而局部变量需要先初始化,后使用
作者: 樊鹏飞    时间: 2012-9-14 00:13
如果你定义的是类的属性也就是成员变量是可以不赋初始值,但如果你在方法中定义了一个变量,那就需要赋值,否则会编译失败




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2