成员变量与局部变量的区别
- 定义
成员变量:在方法体外,类体内声明的变量为成员变量。
局部变量:在方法体内声明的变量叫做局部变量。
- 成员变量与局部变量的异同
(1)声明位置:成员变量声明在类内,局部变量声明在方法形参以及方法内,代码块内部,构造器内部等。
(2)修饰符:成员变量可以使用权限修饰符如:public,private,static,final等;局部变量不能使用权限修饰符,可以使用final。
(3)初始化值:成员变量有默认初始化值,这里赋值规则与数组赋值一样;局部变量没有默认初始化值,必须显性赋值。
(4)内存加载位置:成员变量在堆空间或静态域内加载;局部变量在栈内加载。
public class VariableTest {
public static void main(String[] args) {
int age;
Person test1 = new Person();
System.out.println(test1.name); //null
// System.out.println(age); //编译不通过,局部变量必须显性赋值,没有默认值
}
static class Person{
String name; //成员变量,直接声明在类中,有默认初始化值
}
}