定义在类中的变量称之为成员变量,定义在成员方法中的变量则称为局部变量。具体有以下区别:
- 成员变量会有默认值
- 局部变量没有默认值,必须初始化之后才能使用
- 成员变量可以在多个成员方法中被引用,而局部变量只能在当前方法中进行引用
我们来看两个案例,第一个示例中两个for
循环中变量i
是彼此独立的:
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
第二个示例中,由于变量i
最先定义在外层,所以第1、2个for
循环都使用了同一个变量i
,且第一个for
循环对于变量i
操作直接影响了第 2 个for
循环,但第 3 个for
循环(它有独立的局部变量i
)并不受前 2 个for
循环的影响。
int i = 0;
for (; i < 5; i++) {
System.out.println(i);
}
for (; i < 5; i++) {
System.out.println(i);
}
for (int i = 0; i < 5; i++) {
System.out.println(i);
}