黑马程序员技术交流社区

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

作者: 赵文豪    时间: 2014-5-30 21:20
标题: 局部变量和成员变量的区别?
局部变量和成员变量的区别?有点混淆,求大神详解,谢谢
作者: 小钟    时间: 2014-5-30 21:30
局部变量和成员变量主要是他们作用域的区别,
成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。
另外,成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
还有,在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。
作者: Lex    时间: 2014-5-30 21:32
局部变量范围是作用在方法中的变量,系统不会初始化默认值,成员变量是类里面的变量,系统会初始化默认值,另外在内存中的位置也不一样,成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。,
作者: lin'    时间: 2014-5-30 21:53
局部呢,就是方法里面的变量,别的方法不能使用。成员变量呢是全局的,大家都能使用,能明白不?希望能懂哈
作者: 枫叶零渡    时间: 2014-5-30 22:00
成员变量:
成员变量定义在类中,在整个类中都可以被访问。
成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
成员变量有默认初始化值。
局部变量:
局部变量只定义在局部范围内,如:函数内,语句内等。
局部变量存在于栈内存中。
作用的范围结束,变量空间会自动释放。
局部变量没有默认初始化值。

作者: 西门吹风    时间: 2014-5-30 22:05
局部变量:在函数体中定义的变量,只能在函数体内使用,函数执行完后自动释放,存放在栈内存中
成员变量:在类中定义的变量,在整个类中都有效,若是静态成员变量,则在类被加载时就初始化,
                若是非静态成员变量,则在新建实例时初始化,静态成员变量存放在方法区中,非静态成员
                变量存放在堆区中





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