黑马程序员技术交流社区
标题:
变量的定义问题?
[打印本页]
作者:
刘经鹏
时间:
2012-12-25 18:48
标题:
变量的定义问题?
为什么变量定义在成员位置上时可以暂时不赋值,但定义在局部变量上一定要先做赋值操作呢?
作者:
一帆风顺
时间:
2012-12-25 19:00
因为在定义成员变量的时候,系统会给他进行初始化,赋给默认值,比如定义int类型为0,boolean类型为flase,String类型为null等。
但是如果在方法里面定义局部变量,系统是不会给他赋值,因此在调用之前需要明确给他指定一个值。
作者:
Rancho_Gump
时间:
2012-12-25 19:12
定义在局部位置的变量也可以先不赋值的。
比如一个方法的形参,是局部变量,便没有给赋值,只有调用此方法时才给赋值。
方法体内的局部变量也可以先定义后赋值。
作者:
郭娇珍
时间:
2012-12-25 19:42
因为成员变量有默认初始化值,所以不需要赋值也可以使用
局部变量只有在初始化变量后才能使用,也就是说定义了局部变量后才在栈内存中开辟了空间
作者:
董将
时间:
2012-12-25 19:54
成员变量系统可以将其默认初始化,给他一个默认值,因而不写值是可以的。
但是局部变量系统不会直接给他一个初始化值,在new这个变量的时候才会进行初始化操作,如果调用的话,赋值就行了
作者:
Rancho_Gump
时间:
2012-12-25 19:58
不好意思 理解错了
局部变量可以先定义不赋值,但用到时 必须赋值。
成员变量JAVA会分配默认值,所以可以不赋值。
作者:
何创
时间:
2012-12-25 20:07
用代码说明吧~~
class demo
{
int x ;
for(int i =0;i<6;i++)
{
System.out.print("我是局部变量");
}
}
这里的X是全局变量 也就是你说的变量 。再定义时候可以赋值 比如 int x =5; 也可以不赋值 比如: int x ;
但是在for循环的 int i 就是局部变量 因为是局部 就是马上使用 用完后它消失 而且必须赋值就是题目中的那样 。
作者:
黑马-邢广耀
时间:
2012-12-26 09:31
成员变量和局部变量的区别:
1、作用范围:
成员变量作用于整个类中
局部变量作用于整个函数中
2、在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在
局部变量:存在栈内存中
3、初始化
成员变量有默认初始化值
局部变量没有默认初始化值,必须手动初始化
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2