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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 098ASD 中级黑马   /  2015-7-4 23:02  /  750 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

成员变量和局部变量的区别?
                A:定义位置区别
                        成员变量        在类中,方法外
                        局部变量        在方法中,或者方法的形式参数
                B:初始化值的区别
                        成员变量        有默认初始化值
                        局部变量        没有默认初始化值,想先定义,赋值,才能使用
                C:存储位置区别
                        成员变量        存储在堆中,随着对象的存在而存在,随着对象的消失而消失。
                        局部变量        存储在栈中,随着方法的调用而存在,随着方法调用完毕而消失。
            在使用变量的时候:
                首先在局部范围找,有就使用。
                接着在成员方法找,有就使用。
                如果在成员位置没有,就报错。

                使用过程中,遵循一个原则:就近原则。

5 个回复

倒序浏览
总结的很好!!!
回复 使用道具 举报
刚刚看了一下  很不错 顶一个吧…………
回复 使用道具 举报
以前学VB的时候,记得有说过全局变量的,然后,现在学习这Java,说的是成员变量,就没听说过全局变量是什么了,我也就以为成员变量就是全局变量,刚才看这楼主这么详细的总结,就又想到这个点。
问了一下度娘:在现代的面向对象语言如Java,C++,C#,Ruby中,由于变量都是封装在类里面的,对别的类不可见,所以已经几乎完全抛弃了全局变量的概念。然而,可以通过把一个类定义为public static,把类成员变量也定义为public static,使该变量在内存中占用固定、唯一的一块空间,来实现全局变量的功能。
貌似,全局变量是要比成员变量还要大的一个东东。^_^  学习了,谢谢楼主的总结。
回复 使用道具 举报
总结的不错,学习了
回复 使用道具 举报
对比总结的很详细。总结出来便于记忆。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马