A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋斗@zbt 中级黑马   /  2013-10-13 20:58  /  1676 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 奋斗@zbt 于 2013-10-14 21:50 编辑

请大家帮忙解释一下什么是局部变量和成员变量,他们之间的关系是怎样的?详细一下啊!

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

6 个回复

倒序浏览
义在类里的(方法外),就是成员变量,在JAVA里全局变量和成员变量是一个意思。
定义在方法里或域里就叫做局部变量,所谓域就是{}里面
1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型
2.成员变量存储在堆,局部变量存储在栈
3.存在时间不同
4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

评分

参与人数 1技术分 +1 收起 理由
李江 + 1

查看全部评分

回复 使用道具 举报
1.作用范围。
成员变量:定义在类中,可以被类中的任意方法访问。
局部变量:只在它所属的局部大括号中有效。               
2,存储情况。
        成员变量(非静态):存储在堆内存中,随着对象的存在而存在。当对象变成垃圾被回收时,该该对象中的成员变量会消失。
      成员变量(静态):存储在方法区中,随着类的加载而加载,随着类的消失而消失
        局部变量:存储在栈内存中,当方法被调用,或者语句被执行的时候,才存在。
        当方法运行完毕,或者语句运行完毕时,局部会被自动释放。所以成员变量也称之为实例(对象)变量.
3,初始化情况。
        成员变量:在堆内存中有默认初始化值。
        局部变量:必须手动初始化后,才可以被使用。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
成员变量是类的一个组成部分,和类的方法处于同一级别;
而局部变量是为了让方法/功能正常运行设立的一些临时存储单元,是专门服务于方法的。
从概念上说,两者是完全没有关系的,
但从应用上说,成员变量可能临时做为局部变量存在,而局部变量也可能依赖或者干脆引用成员变量完成工作。
打个不太合适的比方,你的主机是一个类,你的CPU、硬盘、内存等等必然和你主机同时存在,同时消失的就是成员变量。
而你机器里装的软件就是这个类所能提供出的方法,局部变量就是组成这些软件的文件。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
上面的都没有说到一个重点:那就是成员变量是是随着对象的实例化,才会加载入字节吗文件的,这个字节吗文件在没有new之前是保存在方法区中的代码区中的,而局部变量是随着方法的入栈而加载的,并且局部变量是一定需要赋初始化值得,并且生命周期比较短,随着方法的弹栈而消失的.

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
我知道的都给上面的回答了(*^__^*)
回复 使用道具 举报
To 金牌黑马 2013-10-14 09:51:55
7#
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马