这篇文章讲的很好(Java基础详解 (一)Java的类成员访问权限修饰词(以及类访问权限)
其实主要就在这张图
我是这么想的,访问也分内外。
内部访问指的是在当前java文件中访问自己的成员,这种情况可以访问自己的java文件中的所有成员,不管这个成员被什么修饰符修饰都可以被访问到。
外部访问则指的是通过类的实例来访问,能访问成员与否,取决于你的类的实例的所在位置。
其实想一想,可以发现,我们访问类的成员也就只有两种方式,一种是在它声明的类里面访问,对应的是内部访问,另一种是创建实例来访问(不考虑静态成员),这个时候这个实例对类里面的东西的访问权限就取决于这个实例所在的位置了。可以想象,有这么一个人,他在家里,想说什么都可以,政治、金融、体育、宗教之类的,但是你去了别人家,你就不能乱说话了,话一直都在他肚子里,但是能否吐出来却取决于这个人所处的位置。