【发布时间】:2013-01-16 13:00:29
【问题描述】:
通常我们知道,为了访问 静态 变量,我们不需要创建类的实例。我们可以直接点赞classname.staticvariable。为了访问类中的静态变量,我们应该有一个静态方法。
现在我对下面的代码 sn-p 有疑问
public class xyz
{
private static int a;
public xyz()
{
a++;
}
}
上面的代码 sn-p 会起作用吗?如果是,为什么,如果不是,为什么?
谢谢 普拉班詹
【问题讨论】:
-
它会起作用吗?你有一个编译器。试试看。
-
显然更快地发布到 SO。
-
情况正好相反。你不能在静态方法中使用非静态变量,而你可以在非静态方法中使用静态变量(但你需要记住并发问题)。
-
请注意,
a在使用 Thread 时并不总是包含创建的xyz的数量。多个线程可以一次访问该变量并留下不可预测的结果。