定义在类中的变量称之为成员变量,定义在成员方法中的变量则称为局部变量。具体有以下区别:

    • 成员变量会有默认值
    • 局部变量没有默认值,必须初始化之后才能使用
    • 成员变量可以在多个成员方法中被引用,而局部变量只能在当前方法中进行引用

    我们来看两个案例,第一个示例中两个for循环中变量i是彼此独立的:

    1. for (int i = 0; i < 5; i++) {
    2. System.out.println(i);
    3. }
    4. for (int i = 0; i < 5; i++) {
    5. System.out.println(i);
    6. }

    第二个示例中,由于变量i最先定义在外层,所以第1、2个for循环都使用了同一个变量i,且第一个for循环对于变量i操作直接影响了第 2 个for循环,但第 3 个for循环(它有独立的局部变量i)并不受前 2 个for循环的影响。

    1. int i = 0;
    2. for (; i < 5; i++) {
    3. System.out.println(i);
    4. }
    5. for (; i < 5; i++) {
    6. System.out.println(i);
    7. }
    8. for (int i = 0; i < 5; i++) {
    9. System.out.println(i);
    10. }