成员变量和局部变量区别
- 在类中的位置不同
成员变量:在类中方法外面
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) - 在内存中的位置不同
成员变量:在堆中(方法区中静态区),成员变量属于对象,对象进堆内存
局部变量:在栈中,局部变量属于方法,方法进栈内存 - 生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失 - 初始值
成员变量:有默认初始值
局部变量:没有默认初始值,使用前需赋值
注意:
成员变量和局部变量的重名问题,就近原则;
可以使用this关键字区分,this.string指的是类中的成员变量,而不是方法内部的。
public class Demo{
String string= "成员变量";
public static void main(String[] args) {
new Demo().show();
}
public void show() {
String string= "局部变量";
System.out.println(string);
}
}
输出结果:局部变量
输出的是show方法中定义的string变量,在使用变量时遵循的原则是就近原则;
Java中提供了this(表示调用对象本身)这个关键字用于访问成员变量。
public class Demo{
String string= "成员变量";
public static void main(String[] args) {
new Demo().show();
}
public void show() {
String string = "局部变量";
System.out.println(this.string);
}
}
输出结果:成员变量
本文详细解析了Java中成员变量与局部变量的区别,包括它们在类中的位置、内存中的位置、生命周期、初始值的不同,以及如何解决重名问题。
1360

被折叠的 条评论
为什么被折叠?



