Java非静态变量引用错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java非静态变量引用错误?相关的知识,希望对你有一定的参考价值。

    public class Abc 
     int a = 9;
     static void print() 
         System.out.println(a);
    

class AbcTester 
    public static void main(String[] args) 
        Abc test = new Abc();
        test.a = 8;
        test.print();
    

即使我在main方法中创建了该类的实例,代码也为什么会产生“ java:非静态变量a不能从静态上下文中引用”错误。我知道静态方法不能使用非静态字段,但是在创建该类的实例之后,该方法是否应该可以使用它呢?

答案

您不能从静态上下文引用实例字段。

   public class Abc 
     int a = 9;             // <-- instance field
     static void print()   // <-- static context (note the static keyword)
         System.out.println(a);
    

以上是关于Java非静态变量引用错误?的主要内容,如果未能解决你的问题,请参考以下文章

无法从静态上下文中引用非静态 变量 this

java中静态变量和静态方法的优缺点

不能从静态上下文中引用非静态变量 x

java:在java中为啥静态变量没有this引用?

内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

非静态变量 this 不能从 main 方法中的静态上下文中引用