教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

java静态变量和实例变量的区别是什么?

更新时间:2023年05月11日10时19分 来源:传智教育 浏览次数:

好口碑IT培训

  Java中,静态变量和实例变量都是类的成员变量,但它们的作用域和生命周期有所不同。

  静态变量(也称为类变量)是类的所有对象共享的变量,它们在类加载时被初始化,且只被初始化一次,一般用于表示类级别的数据。静态变量可以通过类名直接访问,也可以通过对象访问。

  实例变量(也称为成员变量)则是每个对象独立拥有的变量,它们在对象创建时被初始化,每个对象拥有一份独立的实例变量,一般用于表示对象的状态。实例变量只能通过对象访问。

  接下来我们用一段Java代码来演示静态变量和实例变量的区别:

public class MyClass {
    static int staticVar = 0;   // 静态变量
    int instanceVar = 0;        // 实例变量

    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        // 静态变量通过类名直接访问,也可以通过对象访问
        System.out.println(MyClass.staticVar);    // 输出:0
        System.out.println(obj1.staticVar);       // 输出:0
        System.out.println(obj2.staticVar);       // 输出:0

        MyClass.staticVar = 1;                    // 通过类名修改静态变量
        System.out.println(MyClass.staticVar);    // 输出:1
        System.out.println(obj1.staticVar);       // 输出:1
        System.out.println(obj2.staticVar);       // 输出:1

        // 实例变量只能通过对象访问
        System.out.println(obj1.instanceVar);     // 输出:0
        System.out.println(obj2.instanceVar);     // 输出:0

        obj1.instanceVar = 2;                     // 通过对象修改实例变量
        System.out.println(obj1.instanceVar);     // 输出:2
        System.out.println(obj2.instanceVar);     // 输出:0
    }
}

  在这个示例中,我们创建了两个MyClass对象,并且分别输出了它们的静态变量和实例变量。可以看到,静态变量在类的所有对象之间共享,而实例变量是每个对象独立拥有的。此外,我们还演示了如何修改静态变量和实例变量,并展示了不同情况下输出的结果。

0 分享到:
和我们在线交谈!