Private |
Default |
Protected |
public |
|
只用本类内部可访问 |
√ |
√ |
√ |
√ |
同一包中的类(包括子类,以及对象.成员) |
√ |
√ |
√ |
|
其它包中的子类 |
√ |
√ |
||
其它包中的类 |
√ |
主要是默认和protected这两个修饰符,总结起来就是:
默认的:同一包中的类(包括子类,以及对象.成员),可以访问;
protected:同一包和其他包的子类,可以访问;
这里的可见、可访问指的是能不能通过 ”实例化对象.变量名“的方式访问,这是因为除static声明的变量属于类变量外,其他的都属于实例变量,是属于某个对象的!
如,Person p = new Person(); p.age直接访问age变量,对于那些私有的变量,很多情况下会对外提供public的setter和getter方法来供外部访问。