黑马程序员技术交流社区

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

作者: 乔友为    时间: 2015-9-19 21:28
标题: 类中成员变量和局部变量的区别?
成员变量在本类中都有效(主方法除外),局部变量只在方法里的{}范围内有效.
成员变量存在于堆内存的对象中,所以其用完后不会马上消息,java垃圾回收机制回收.而局部变量存在于栈内存中,用完马上消失.
另外由于成员变量存在于堆内存中,所以就算其没有初始化,也会随对象建立自动初始化为该类型的默认值.


作者: 任振铭    时间: 2015-9-19 21:40
成员变量在主方法中无效?你解释一下
作者: 乔友为    时间: 2015-9-19 21:42
任振铭 发表于 2015-9-19 21:40
成员变量在主方法中无效?你解释一下

对啊,只是作用在大括号内.
作者: 任振铭    时间: 2015-9-19 21:43
乔友为 发表于 2015-9-19 21:42
对啊,只是作用在大括号内.

照你这样说,好像主函数就无法访问成员变量了,但是主函数是可以访问的
作者: 水子木    时间: 2015-9-19 21:48
很赞啊,顶顶
作者: 安仔    时间: 2015-9-19 21:58
任振铭 发表于 2015-9-19 21:43
照你这样说,好像主函数就无法访问成员变量了,但是主函数是可以访问的

主函数并不能直接访问到成员变量,即使成员变量的默认的权限default,必须通过建立对象,由对象去访问成员变量;如果成员变量的权限是私有的private,就更不能直接访问了。
作者: 任振铭    时间: 2015-9-19 22:16
安仔 发表于 2015-9-19 21:58
主函数并不能直接访问到成员变量,即使成员变量的默认的权限default,必须通过建立对象,由对象去访问成 ...

成员变量是定义在类中的,所以它的作用域是整个类,而主函数也是包含在类中的,所以,成员变量的作用域也包括主函数,与是否可以直接调用无关,这样说可对?
作者: 安仔    时间: 2015-9-19 22:33
任振铭 发表于 2015-9-19 22:16
成员变量是定义在类中的,所以它的作用域是整个类,而主函数也是包含在类中的,所以,成员变量的作用域也包括 ...

主函数所在的类中和成员变量所在的类是一个类吗?首先主函数不是必须有的,可以说大括号基本上就定义了一个变量的生命周期,建议写个代码好好分析下。
作者: 193936696    时间: 2015-9-19 22:34
不错不错
作者: 1406046710    时间: 2015-9-19 22:35
不错不错 恍然大悟

作者: 任振铭    时间: 2015-9-19 22:57
安仔 发表于 2015-9-19 22:33
主函数所在的类中和成员变量所在的类是一个类吗?首先主函数不是必须有的,可以说大括号基本上就定义了一 ...

多谢多谢,还需努力
作者: 瑞雪雄起    时间: 2015-9-19 23:11
类的成员变量在永久区 一般不会回收
实例成员变量在堆区  垃圾回收处理
局部变量在栈区 随着方法的产生而产生,随着方法的消失而消失


作者: 大大的大孩    时间: 2015-9-19 23:14
顶顶顶顶顶顶顶顶顶顶顶顶顶顶的顶顶顶顶顶的顶顶顶顶顶




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