受保护和包访问

0 java package

我试图了解受保护和包装的想法,我已经在编译器上尝试了它们,但它一直告诉我有问题

public class example{

    int s = example2.v;

    public static void main(String args[]){


    }
} 

public class example2 {

    int v = 0 ;

}
Run Code Online (Sandbox Code Playgroud)

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

无法从静态上下文引用非静态变量v.

变量''不是静态的!

A--*_*--C 5

您试图以静态方式引用v,这就是问题所在.无论何时这样做ClassName.fieldName都意味着您以静态方式访问资源.首先必须实例化该类然后执行myReferenceVariable.fieldName

public class example{
    example2 myExample = new example2();
    int s = myExample.v;
Run Code Online (Sandbox Code Playgroud)

这应该工作.

还要记住,Java命名约定的类名以大写字母开头.不是恭维问题,而是可读性问题.