成员变量:由于是属于对象的,所以位于堆内存中
局部变量:位于栈内存中(因为方法是位于栈内)
1.两者作用域不同
2.初始值不同(成员变量会被赋予初始值,而局部变量不会)
3.在同一个方法中不允许有同名的局部变量,不同方法中,可以有同名的情况
4.成员变量和局部变量同名时,局部变量具有更高的优先级别
下面通过一个例子来看优先级的变化
package ZUOYE5;
public class Object {
int text = 10;// 成员变量
void Text() {
int text = 100;// 局部变量优先级更高
System.out.println(text);
}
public static void main(String[] args) {
Object one = new gaicuo();
System.out.println(one.text);
one.Text();
}
}
输出结果为:100 10
根据结果,可见在调用方法的时候,局部变量的优先级是更高的
来源:CSDN
作者:不是屠小意,却爱姚哲恬
链接:https://blog.csdn.net/qq_44083510/article/details/104563834