Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的静态变量_Java_Variables_Static - Fatal编程技术网

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允许您使用
非静态
语法访问静态字段


这就是一切,这背后没有别的

是,允许非静态成员访问和更新静态成员


有关更多信息,请参见此

所有实例变量都共享该静态变量。您错误地引用了它,但它仍在运行