黑马程序员技术交流社区

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

作者: 飘过的云    时间: 2015-5-18 22:16
标题: 局部变量和成员变量的区别
定义位置:成员变量定义在方法外,类中;局部变量定义在方法中。
存储位置:成员变量存储在堆中,局部变量存储在栈中。
初始化值:成员变量有默认初始化值,局部变量没有默认初始化值。
作者: L番茄X    时间: 2015-5-18 22:17
我觉得这些很难分清楚
作者: 飘过的云    时间: 2015-5-18 22:30
记住就好 都是些概念 但很重要
作者: 雪域星辰    时间: 2015-5-18 22:36
实际用多了就懂了。
作者: 飘过的云    时间: 2015-5-18 23:10
是 啊 关键还是多敲代码
作者: 懒儿想想    时间: 2015-5-18 23:13
简单明了
作者: 小麻    时间: 2015-5-19 11:30
作用的范围不一样把
作者: mmakun    时间: 2015-5-19 13:13
感觉不错 的
作者: 笔墨痕干    时间: 2015-5-19 16:17
嗯嗯,总结一下还是满清晰的
作者: 彭越    时间: 2015-5-19 17:26
懂了就容易记住了
作者: zq19910303    时间: 2015-5-19 19:02
存储位置是不能确定的,比如某成员变量被static修饰,那么它就会存在于方法区中
作者: Always,    时间: 2015-5-19 19:05
  赞一个。
作者: 柒仴、看雲佉    时间: 2015-5-19 22:46
说的太好了
作者: 18463730277    时间: 2015-5-19 22:55
局部变量就是起到临时使用的作用,对比成员变量而言的
作者: !85684009ex    时间: 2015-5-19 23:47
两者作用域不同!设定的位置不同!存储位置不同!一个有默认值一个没有默认值!
作者: T-fra    时间: 2015-5-20 00:40
不理解就多敲代码
作者: 刘冬    时间: 2015-5-20 10:33
总结的不错
作者: guojiadui    时间: 2015-5-20 13:33
很不错,够全面
作者: hsx500    时间: 2015-5-20 13:48
我想知道,知道了这些事实,对编程有什么用处?
作者: mars_b0ZZ0    时间: 2015-5-20 16:48
恩,学习了
作者: wangaz    时间: 2015-5-20 18:40
作用范围也不同,如:一个类中有int型成员变量x,此类中方法也有int型变量x,则方法内部可访问成员变量x,但方法外部不能访问方法内部定义的局部变量x;生命周期不同,局部变量随着方法的结束而消亡,而成员变量则是随着对象无引用指向后被清除掉;还有一些特殊的地方,如类定义在成员变量的位置上可以使用一些普通类不能使用的修饰符,如static、private。
作者: 白水丶    时间: 2015-5-20 19:39
成员变量不一定要有初始值吧,局部变量也不一定没有初始值吧
作者: haoguan10    时间: 2015-5-20 20:13
恩恩,相对而言的,一个作用范围大,一个作用范围小
作者: ljc979508577    时间: 2015-5-20 20:33
写的不错
作者: wang649557111    时间: 2015-5-20 20:43
虽然简单但是很不错
作者: 快乐Anne    时间: 2015-5-20 20:52
局部变量和成员变量主要是他们作用域的区别, 成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。 另外,成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。 还有,在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。
作者: 飘过的云    时间: 2015-5-20 21:10
快乐Anne 发表于 2015-5-20 20:52
局部变量和成员变量主要是他们作用域的区别, 成员变量个是类内部;局部变量是定义其的方法体内部(或者方 ...

确实,很有道理,谢谢分享
作者: 黑马生涯    时间: 2015-5-20 21:14
成员变量在定义在类中方法外,局部变量定义在方法中
作者: zhangjnia    时间: 2015-5-20 22:00
不用强记,慢慢就懂了
作者: 追梦德鲁    时间: 2015-5-20 22:31
理解就好 这块
作者: gaoer    时间: 2015-5-20 22:49
记得就好了啊 ~~~~~~~~~!
作者: 二大爷    时间: 2015-5-20 22:50
精辟!牛牛
作者: 飘过的云    时间: 2015-5-21 22:25
wangaz 发表于 2015-5-20 18:40
作用范围也不同,如:一个类中有int型成员变量x,此类中方法也有int型变量x,则方法内部可访问成员变量x, ...

今天刚看到,说的很有道理,谢谢分享
作者: 飘过的云    时间: 2015-5-21 22:31
白水丶 发表于 2015-5-20 19:39
成员变量不一定要有初始值吧,局部变量也不一定没有初始值吧

成员变量进入堆区会进行默认初始化
“=”会对属性进行显示初始化。
构造代码块对对象进行初始化。
对应的构造函数对对象(成员变量)进行初始化。
作者: zw937820438    时间: 2015-5-21 22:37
不错,来分享一下
作者: wangkai    时间: 2015-5-22 11:49
成员变量和局部变量
作用范围:
成员变量作用于整个类中。
局部变量作用于函数中,或者语句中。
在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在于栈内存中。
作者: hydrogen11    时间: 2015-5-22 11:58
唔,看大家总结一下还是学习了!
作者: 嘎嘎鸭子    时间: 2015-5-22 13:12
局部变量和成员变量主要是他们作用域的区别, 成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)
作者: 凉仁日记    时间: 2015-5-22 15:41
这都是基本的概念,记住就习惯了
作者: lanbo    时间: 2015-5-22 17:54
看了,还会忘啊
作者: 李志鹏    时间: 2015-5-22 18:07
学习了,现在还不知道栈和堆有什么区别呢
作者: zdh    时间: 2015-5-22 23:43
简单明了
作者: 18253594213    时间: 2015-5-23 23:59
看看,学习下啊
作者: q617939894    时间: 2015-5-24 11:48
不错喔,继续加油!
作者: Lucus    时间: 2015-5-24 13:40
赞一个 一目了然!!!
作者: lhwinner    时间: 2015-5-24 14:05
我再补充一下
定义位置:成员变量定义在类中;局部变量可以定义在方法中,形参,代码块中
生命周期:类成员变量随着类的加载而加载,随着类的消失而消失,实例成员变量随着对象的创建而存在,随着对象的消失而消失;局部变量随着方法或代码块被调用而加载,方法或代码块结束而消失
作用域:成员变量在整个类中都有效;局部变量在方法中或代码块中有效
作者: !85684009ex    时间: 2015-5-24 14:22
继续膜拜~大神保佑~~~
作者: 飘过的云    时间: 2015-5-24 15:08
补充:被final 修饰的 局部变量 也是在堆中
作者: Sky丶    时间: 2015-5-24 15:12
成员变量作用于整个类  局部变量值作用于方法中
作者: 路人乙1989    时间: 2015-7-12 23:07
不错不错,学习过了
作者: wh121    时间: 2015-7-12 23:11
多敲敲代码,就理解了。尝试的去证明问题
作者: 18671183990    时间: 2015-7-12 23:47
要理解才行  努力吧
作者: 825176857    时间: 2015-7-13 00:02
关键还是多敲代码
作者: 黑马和大灰狼    时间: 2015-7-13 00:28
!85684009ex 发表于 2015-5-19 23:47
两者作用域不同!设定的位置不同!存储位置不同!一个有默认值一个没有默认值! ...

总结的很好




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