Skip to content

作用域


全局变量

(1)全局变量指的是定义在类中但在方法之外的一些变量

(2)当变量作为类的属性时,可以不赋值,有默认值(类创建的默认初始化)

局部变量

(1)局部变量指的是定义在方法中的变量,即除了属性之外的其他变量,作用域为定义它的代码块中

(2) 必须赋值后才可以使用,因为没有默认值

作用域范围

(1) 全局变量:可以被本类使用,也可以被其他类使用(通过对象的调用)

(2) 局部变量:只能在本类中对应的方法中使用

使用细节

(1)属性和局部变量可以重名,访问时遵循就近原则

(2)同一个作用域中变量名不能重名,否则会被解析为重定义而报错

(3)全局变量的生命周期长,局部变量会随着方法调用的完成而销毁,由于方法的调用是临时申请一段栈空间,调用完成后就会释放,即随着调用的完成会销毁

(4)修饰符不同

(1)全局变量:可以加修饰符

(2)局部变量:不可以加修饰符

代码示例

java
public class Test {
    public static void main(String[] args) {
        p ts = new p();

        ts.test();

        ts.test1();

        p1 ts1 = new p1();
        ts1.test();

    }
}

class p {
    int age = 10;

    public void test() {
        int age = 5;
        System.out.println(age);
    }

    public void test1() {
        System.out.println(age);
    }
}

class p1 {
    public void test() {
        p test_classp = new p();
        System.out.println(test_classp.age);
    }

}

代码分析

(1)在 P 中使用两个方法验证了

变量的使用遵循就近原则

全局变量的作用范围(可以被本类中使用)

(2)在 P1 中使用了跨类调用,验证了全局变量除了可以被本类调用,还可以被其他类调用