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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵文豪 中级黑马   /  2014-5-30 21:20  /  1010 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

局部变量和成员变量的区别?有点混淆,求大神详解,谢谢

5 个回复

倒序浏览
局部变量和成员变量主要是他们作用域的区别,
成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。
另外,成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
还有,在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。

评分

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

查看全部评分

回复 使用道具 举报
局部变量范围是作用在方法中的变量,系统不会初始化默认值,成员变量是类里面的变量,系统会初始化默认值,另外在内存中的位置也不一样,成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。,
回复 使用道具 举报
局部呢,就是方法里面的变量,别的方法不能使用。成员变量呢是全局的,大家都能使用,能明白不?希望能懂哈
回复 使用道具 举报
成员变量:
成员变量定义在类中,在整个类中都可以被访问。
成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
成员变量有默认初始化值。
局部变量:
局部变量只定义在局部范围内,如:函数内,语句内等。
局部变量存在于栈内存中。
作用的范围结束,变量空间会自动释放。
局部变量没有默认初始化值。
回复 使用道具 举报
局部变量:在函数体中定义的变量,只能在函数体内使用,函数执行完后自动释放,存放在栈内存中
成员变量:在类中定义的变量,在整个类中都有效,若是静态成员变量,则在类被加载时就初始化,
                若是非静态成员变量,则在新建实例时初始化,静态成员变量存放在方法区中,非静态成员
                变量存放在堆区中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马