成员变量和局部变量
成员变量和局部变量的区别
1.定义的位置不同
成员变量: 类体以内,方法体以外
局部变量: 方法的声明上,或者方法体内
2.在内存的位置不一样
成员变量: 在堆区分配内存
局部变量: 在栈区分配内存
3.初始化值不一样
成员变量: 系统赋予初始值
byte short int long 0
float double 0.0
boolean false
char \u0000
引用类型 null
局部变量: 方法的声明上,或者方法体内
没有默认值,必须先声明再赋值再使用
4.变量的生命周期不一样
生命周期: 变量从开始创建到销毁的全过程
成员变量: 随着对象的创建而创建,随着垃圾回收器回收对象的时候销毁
局部变量: 随着方法的调用而创建,随着方法调用结束而销毁
5.当成员变量和局部变量重名的时候,局部变量优先,就近原则
如果希望访问成员变量,需要使用this关键字
举例代码实现如下:
public class OOPDemo02 {
public static void main(String[] args) {
Person p = new Person();
p.test();
}
}
class Person {
String name = "张三";
int age;
public int add(int a, int b) {
int sum = 0;
sum = a + b;
return sum;
}
int num;
public void test() {
String name = "李四";
System.out.println(name);
System.out.println(this.name);
}
}