Java 变量作用域
变量作用域定义了变量的可见性和生命周期范围。
成员变量(类级别)
定义在类中、方法外,整个类可见。
Java
public class Person {
String name; // 实例变量
static int count; // 静态变量
public void say() {
System.out.println(name); // 可访问
}
}
| 类型 | 默认值 | 生命周期 |
|---|---|---|
| 实例变量 | 有默认值 | 对象创建到销毁 |
| 静态变量 | 有默认值 | 类加载到卸载 |
局部变量(方法级别)
定义在方法内,仅方法内可见。
Java
public void method() {
int a = 10; // 局部变量
System.out.println(a); // 可访问
}
public void other() {
// System.out.println(a); // 编译错误,不可访问
}
局部变量没有默认值,必须初始化后使用。
代码块变量(块级别)
定义在代码块内,仅块内可见。
Java
public void demo() {
if (true) {
int x = 10; // 块级变量
System.out.println(x); // 可访问
}
// System.out.println(x); // 编译错误,超出作用域
}
作用域覆盖规则
Java
public class Demo {
int x = 10; // 成员变量
public void method() {
int x = 20; // 局部变量,覆盖成员变量
System.out.println(x); // 输出 20
// 访问被覆盖的成员变量
System.out.println(this.x); // 输出 10
}
}
要点总结
- 成员变量:类级别,有默认值
- 局部变量:方法级别,无默认值
- 块变量:代码块级别,块外不可见
📝 发现内容有误?点击此处直接编辑