我试图了解保护访问和打包访问的概念,并在编译器上进行了尝试,但它一直告诉我存在问题

public class example{

    int s = example2.v;

    public static void main(String args[]){


    }
}

public class example2 {

    int v = 0 ;

}


谁能帮我这个?为什么说:


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


变量“ s”不是静态的!

最佳答案

您正在尝试以静态方式引用v,这就是问题所在。每当您执行ClassName.fieldName时,这意味着您将以静态方式访问资源。您首先必须实例化该类,然后执行myReferenceVariable.fieldName

public class example{
    example2 myExample = new example2();
    int s = myExample.v;


这应该工作。

还请记住,Java命名约定的类名以大写字母开头。无关紧要,而是可读性。

08-27 05:28