为什么我们可以通过Java中的对象引用来访问静态变量,如下面的代码?
public class Static {
private static String x = "Static variable";
public String getX() {
return this.x; // Case #1
}
public static void main(String[] args) {
Static member = new Static();
System.out.println(member.x); // Case #2
}
}
一般来说,公共变量可以被任何人访问,而私有变量只能从类的当前实例内部访问。在您的示例中,您可以访问x
变量来自main
方法,因为该方法位于 Static 类中。
如果您想知道为什么允许从静态类的另一个实例而不是当前所在的实例访问它(私有变量通常不允许),这只是因为静态变量不存在于静态类上。基于每个实例,但基于每个类。这意味着相同的静态变量A可以从所有实例访问A.
如果不是这种情况,则根本没有人能够访问私有静态变量,因为它不属于one实例,但它们全部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)