黑马程序员技术交流社区
标题:
关于局部和成员的概念有些混淆了
[打印本页]
作者:
yhnan
时间:
2013-3-13 18:28
标题:
关于局部和成员的概念有些混淆了
本帖最后由 易贺男 于 2013-3-13 22:48 编辑
就是视频上老师经常说局部变量和成员变量 ,局部方法和成员方法老是分不清楚。请问局部和成员怎么定义的?
作者:
wanggang
时间:
2013-3-13 19:09
局部变量 一般是在方法里定义的,而成员变量 是在类里方法外定义的,例如:
class aa{
int 成员变量;
public void bb(int 局部变量)
{
String 局部变量;
}
}
作者:
黑马-郑玉元
时间:
2013-3-13 19:15
成员变量是定义在类中,局部变量定义在方法里或者一些流程控制语句中。
区别在于:
1.作用范围: 成员变量在整个类内有效 ,而局部变量只在其方法内或流程语句中有效
2.初始值: 成员变量如果没有对其进行初始化,会对其进行默认初始化。
局部变量必须初始化才能使用。
3.生命周期: 成员变量生命周期是与对象的生命周其一致 局部变量使用完成后就消失。
4.创建的位置 :成员变量在堆内存中 局部变量在栈内存中。
作者:
赵亚威
时间:
2013-3-13 19:18
局部变量只能用在局部 一般都在方法中定义 内部类除外 ;成员变量即全局变量 整个类中都可以使用 局部方法是相对的 比如在入口的外面定义一个方法(非静态也不是构造方法)那么可以叫做局部方法 像有static修饰的方法 可以叫做成员方法 整个类都能使用。
作者:
罗威
时间:
2013-3-13 22:09
成员变量,全局变量,定义在类中变量
局部变量,定义在函数中,或者语句中
成员变量和局部变量的可以用以下几点区别
作用范围:
成员变量,作用在整个类中,
局部变量,只作用在函数定义的大括号中
存储位置:
成员变量是跟随对象,在堆内存中存储
局部变量,存储在栈内存中
初始化值
成员变量都有默认的初始化值
局部变量,需要手动的赋值
调用方式的不同
非静态成员变量,只能被对象调用
局部变量,是函数运行,他就运行了
生命周期
非静态成员变量,随着对象的消失而消失
局部变量,只要语句或者函数结束,局部变量就消失了
当然,如果是静态的,那么他就是随着类的加载就已经加载到了相应的内存区域了
一般来说,能不定义为静态的就不定义为静态的,因为静态的生命周期太长,比较占用资源!
作者:
陈丽莉
时间:
2013-3-13 22:36
若仍有问题,请继续追问;若没有问题了,请将帖子分类改成【已解决】~
作者:
唐永康
时间:
2013-3-13 22:49
就是视频上老师经常说局部变量和成员变量 ,局部方法和成员方法老是分不清楚。请问局部和成员怎么定义的?
用一个实际的例子你就明白了。
一个类里面的成员方法与成员变量。
class Test
{
int x ;//这里的x就是成员变量了。成员变量不需要初始赋值
void method()//这里的方法method其实就是成员方法。
{
int y = 0;//这里的y就是局部变量,必须要赋初始值。
y的作用范围只能是在method方法之内有用,所以叫做局部,而x不同,因为x变量的作用范围
是整个类。与method方法处于同级地位,也叫成员变量。
}
}
至于你说的局部方法和成员方法我没有听说过,方法本来就是属于成员,方法里面可以调用方法,但
不能再定义方法了,所以说,据我所知,根本不存在局部方法这么一说,如果非得这么说,那就是在内部类里面
可以有局部方法,当然这里相对于外部类也算得上是局部方法。
总之类包括成员,成员包括局部。就是这么一个包含的关系。这样理解起来更容易些。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2