黑马程序员技术交流社区

标题: 局部变量和成员变量 [打印本页]

作者: 奋斗@zbt    时间: 2013-10-13 20:58
标题: 局部变量和成员变量
本帖最后由 奋斗@zbt 于 2013-10-14 21:50 编辑

请大家帮忙解释一下什么是局部变量和成员变量,他们之间的关系是怎样的?详细一下啊!
作者: ㄗ灬Night|K    时间: 2013-10-13 21:07
义在类里的(方法外),就是成员变量,在JAVA里全局变量和成员变量是一个意思。
定义在方法里或域里就叫做局部变量,所谓域就是{}里面
1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型
2.成员变量存储在堆,局部变量存储在栈
3.存在时间不同
4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值
作者: 小痞痞    时间: 2013-10-13 21:44
1.作用范围。
成员变量:定义在类中,可以被类中的任意方法访问。
局部变量:只在它所属的局部大括号中有效。               
2,存储情况。
        成员变量(非静态):存储在堆内存中,随着对象的存在而存在。当对象变成垃圾被回收时,该该对象中的成员变量会消失。
      成员变量(静态):存储在方法区中,随着类的加载而加载,随着类的消失而消失
        局部变量:存储在栈内存中,当方法被调用,或者语句被执行的时候,才存在。
        当方法运行完毕,或者语句运行完毕时,局部会被自动释放。所以成员变量也称之为实例(对象)变量.
3,初始化情况。
        成员变量:在堆内存中有默认初始化值。
        局部变量:必须手动初始化后,才可以被使用。

作者: 枫儿    时间: 2013-10-13 21:44
成员变量是类的一个组成部分,和类的方法处于同一级别;
而局部变量是为了让方法/功能正常运行设立的一些临时存储单元,是专门服务于方法的。
从概念上说,两者是完全没有关系的,
但从应用上说,成员变量可能临时做为局部变量存在,而局部变量也可能依赖或者干脆引用成员变量完成工作。
打个不太合适的比方,你的主机是一个类,你的CPU、硬盘、内存等等必然和你主机同时存在,同时消失的就是成员变量。
而你机器里装的软件就是这个类所能提供出的方法,局部变量就是组成这些软件的文件。
作者: 蔚蓝天色    时间: 2013-10-14 02:04
上面的都没有说到一个重点:那就是成员变量是是随着对象的实例化,才会加载入字节吗文件的,这个字节吗文件在没有new之前是保存在方法区中的代码区中的,而局部变量是随着方法的入栈而加载的,并且局部变量是一定需要赋初始化值得,并且生命周期比较短,随着方法的弹栈而消失的.
作者: 李红亮    时间: 2013-10-14 08:36
我知道的都给上面的回答了(*^__^*)
作者: To    时间: 2013-10-14 09:51
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html




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