一尘不染

java中static关键字的用法有哪些?

java static

java中static关键字的用法有哪些?


阅读 416

收藏
2020-01-07

共1个答案

一尘不染

static 成员属于类而不是特定实例。

这意味着即使你创建了该类的一百万个实例,也没有创建任何实例,该static字段仅存在一个实例[1]。它将被所有实例共享。

由于static方法也不属于特定实例,因此它们不能引用实例成员。在给定的示例中,main不知道应引用该类的Hello哪个实例(以及该类的哪个实例Clock)。static成员只能引用static成员。实例成员当然可以访问static成员。

旁注:当然,static成员可以通过对象引用访问实例成员。

例:

public class Example {
    private static boolean staticField;
    private boolean instanceField;
    public static void main(String[] args) {
        // a static method can access static fields
        staticField = true;

        // a static method can access instance fields through an object reference
        Example instance = new Example();
        instance.instanceField = true;
    }

[1]:根据运行时的特性,每个ClassLoader或AppDomain或线程可以是一个,但是那不是重点。

2020-01-08