在 Java 中,成员变量(Member Variables)和局部变量(Local Variables)是两种不同类型的变量,它们的作用域、生命周期和初始化方式有所不同。
成员变量(Member Variables)
- 实例变量(Instance Variables):属于类的实例(对象),每个对象有自己的一份拷贝。
- 静态变量(Static Variables / Class Variables):属于类本身,所有对象共享同一份变量。
public class Person {
// 实例变量
String name; // 默认 null
int age; // 默认 0
// 静态变量(类变量)
static int count = 0; // 统计 Person 对象的数量
public Person(String name, int age) {
this.name = name;
this.age = age;
count++;
}
}
局部变量(Local Variables)
✅ 作用域:仅限于定义它的代码块(如方法、循环、if语句等)。
✅ 生命周期:方法调用时创建,方法执行完毕后销毁。
✅ 默认值:不会自动初始化,必须显式赋值后才能使用,否则编译错误。
✅ 访问方式:只能在定义它的代码块内访问。
public class Example {
// 成员变量(实例变量)
int num1; // 默认 0
static int num2; // 默认 0
public void method() {
// 局部变量(必须手动初始化)
int num3 = 10;
System.out.println(num3); // 正确
// int num4;
// System.out.println(num4); // 错误:num4 未初始化
}
}
成员变量 vs 局部变量
| 特性 | 成员变量 | 局部变量 |
|---|---|---|
| 定义位置 | 类内部,方法外部 | 方法、构造方法、代码块内部 |
| 作用域 | 整个类 | 仅限于定义它的代码块 |
| 生命周期 | 对象存在时(实例变量)或类加载时(静态变量) | 方法调用时创建,方法结束后销毁 |
| 初始化方式 | 自动初始化(0、false、null) | 不会自动初始化,必须手动赋值 |
2万+

被折叠的 条评论
为什么被折叠?



