Java中的静态变量
我知道静态变量是类的一部分,而不是对象的一部分。下面的代码行如何工作而没有任何问题Java中的静态变量,java,variables,static,Java,Variables,Static,我知道静态变量是类的一部分,而不是对象的一部分。下面的代码行如何工作而没有任何问题 class M { static int i=0; void Inc() { System.out.println("Global "+M.i); System.out.println("Local "+this.i); } } public class StaticTest { public static void main(String args[]) {
class M
{
static int i=0;
void Inc()
{
System.out.println("Global "+M.i);
System.out.println("Local "+this.i);
}
}
public class StaticTest
{
public static void main(String args[])
{
M m1=new M();
m1.i=99; //How can the m1 object access i variable of the class
m1.Inc();
}
}
我得到的输出是
Global 99
Local 99
m1对象如何访问类的i变量 在这两种情况下都是相同的i变量
不幸的是,java允许您使用非静态
语法访问静态字段
这就是一切,这背后没有别的 是,允许非静态成员访问和更新静态成员
有关更多信息,请参见此所有实例变量都共享该静态变量。您错误地引用了它,但它仍在运行