这意味着即使你创建了该类的一百万个实例,也没有创建任何实例,该
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或线程可以是一个,但是那不是重点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)