我试图了解保护访问和打包访问的概念,并在编译器上进行了尝试,但它一直告诉我存在问题
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命名约定的类名以大写字母开头。无关紧要,而是可读性。