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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mm2015 中级黑马   /  2015-12-6 13:17  /  737 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问成员变量和局部变量怎么区分,怎么理解呢?/

4 个回复

倒序浏览
局部变量和成员变量主要是他们作用域的区别,
成员变量个是类内部;局部变量是定义其的方法体内部。
成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中
  1. class Demo {
  2.         int a;//成员变量
  3.        
  4.         public static void main(String[] args) {
  5.                 int b;//局部变量
  6.         }
  7. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
成员变量和局部变量的区别:
1:成员变量直接定义在类中。
   局部变量定义在方法中,参数上,语句中。
2:成员变量在这个类中有效。
局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。
3:成员变量存在于堆内存中,随着对象的产生而存在,消失而消失。
局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。

评分

参与人数 1技术分 +1 收起 理由
洋葱头头 + 1

查看全部评分

回复 使用道具 举报
就个人经验来说,实际开发中常用的变量有三种:
全局变量:作用于整个App,常为static变量,常常用来存储多个界面要用到的值。
成员变量:作用于当前Activity,也仅用于当前Activity,当前Activity中的方法都可以使用。
局部变量:方法中的变量,你随手写了一个方法,随手在方法中创建并初始化了一个变量,这就是局部变量,离开这个方法,就没用了。


回复 使用道具 举报
昨天刚刚学了这个
1:在类中的位置不同
        成员变量:在类中方法外
        局部变量:在方法定义中或者方法声明上
2:在内存中的位置不同
        成员变量:在堆内存(成员变量属于对象,对象进堆内存)
        * 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
* C:生命周期不同
        * 成员变量:随着对象的创建而存在,随着对象的消失而消失
        * 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
* D:初始化值不同
        * 成员变量:有默认初始化值
        局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
       
注意事项:
        局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
        基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
        引用数据类型变量包括哪些:数组,类,接口,枚举
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马