Java Access Modifiers

LiT*_*Tle 1 java access-modifiers

根据第二个文档表(http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html),没有标识符的成员对子类不可见.
但是,当我运行以下示例代码时,会打印"1"(b的内容)!

class Class1{
    private int a=0;
    int b=1;
    protected int c=2;
    public int d=3;
}

class Class2 extends Class1{ }

public class HelloWorld{

     public static void main(String []args){
        Class2 klass=new Class2();
        System.out.println(klass.b);
     }
}
Run Code Online (Sandbox Code Playgroud)

如果无法从子类访问没有访问修饰符的成员,为什么在此示例中打印它?
它应该抛出一个错误,就像私有访问修饰符一样,不应该吗?

Sub*_*der 5

看起来像两个阶级(Class1 & Class2)是在同一个包,以及同级别HelloWorld它的自我,并default modifier与在课堂上或包装可见.

default modifier或者no modifier在java中具有重要性,它private与文档中定义的访问级别不同.