5.2 作用域与生命周期
作用域决定变量名在哪里可见。定义在方法或代码块中的变量是局部变量。
java
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
// 这里不能再使用 i方法参数也是局部变量。调用方法时,实参的值会复制给形参,所以方法内部修改形参不会自动改变调用者的变量。
一个经典例子是 swap():它想在方法里交换两个变量的值,但对于基本类型 int 会失败。
java
static void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
int x = 3;
int y = 8;
swap(x, y);
System.out.println(x + " " + y);
}运行结果:
text
3 8swap() 只交换了自己的局部副本 a 和 b,main 中的 x 和 y 完全没变。在 Java 中,如果真的要更新调用者可见的数据,通常返回一个值、修改传入的数组/对象,或者设计一个小对象保存结果。
字段定义在类中,可以被这个类的方法访问。如果字段是 static,它属于类本身。生命周期长的共享状态会让数据变化来源更难追踪,初学阶段优先使用局部变量和方法参数。
Java 不支持 C 那种写在方法内部的 static 局部变量。如果某个值需要在多次方法调用之间保留,通常使用字段。
正在加载概念检查...
正在加载本节练习...