1,public 可以在任何地方访问
2,protected 可以在本类,同包,子类中访问
3,default 可以在本类和同包中访问
4,private 只允许在本类访问
其中public和default能够额外的修饰类,这里思考下为什么只有public和default能够用来修饰类。
对于一个java文件,要么就是自己单独运行,要么就是被其他程序作为库调用,如果一个java文件的类被private修饰,那么是不是其他的程序或是类是无法使用它的,而如果它作为单个文件运行,类加载怎么找到它呢,因为它对外不可见。同时,也失去了类的存在意义。
当使用default来修饰类时,说明这个类只能在同包中使用,这里强调下为什么不用protected,因为protected是可以被子类使用的,而子类可以与父类不在同一个包,所以这样来看protected就相当于是public的效果。因此要限制同包使用只能使用default。
外部类的上一级单元就是包。
暂时这么理解。