Java成员变量与局部变量
1 相同点
1.1 定义变量的格式相同
变量类型 变量名 = 变量值
1.2 都是先声明后使用
1.3 变量都有其作用域(作用域是一对大括号)
2 不同点
2.1 在类中声明的位置
属性:直接定义在 {} 内
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内
class Person{
/*
这两个是成员变量
*/
String name;
int age;
public void eat(String name //局部变量){
int number; //局部变量
}
}
2.2 关于权限修饰符
属性:可以在声明时指明其权限,使用权限修饰符 (包括public private 缺省 protected)
局部变量:不可以使用权限修饰符(可以理解为和方法权限修饰符相同)
class Person{
/*
成员变量定义时可以指明权限修饰符
*/
private String name;
public int age;
public void eat(){
//private int age; 局部变量定义时不能指明权限修饰符
}
}
2.3 关于默认初始化
属性:对于类的属性,根据其类型都有默认初始化值
整型是0 浮点型是0.0 char是0 boolean是false 引用数据类型是null
局部变量:没有默认初始化值,意味着:在调用局部变量之前一定要显示赋值 特别的:形参在调用时赋值就行
2.4 在内存中加载的位置
属性:加载到堆空间(非static)
局部变量:加载到栈空间