20180304 java面向对象-权限访问修饰
访问权限控制:
1、private:表示私有的,表示类访问权限,只能在本类中访问,离开本类之后就不能直接访问。
。
2、不写(缺省):表示包私有,只能在本包中访问(访问者的包必须和当前定义类的包相同才能访问)。
package a;
class A
{
//不能访问 name
}
package a.b;
class A
{
String name;
//可以访问 name
}
3、protected:表示子类访问权限(相同包中的 可以访问,即使不同包,但是有继承关系的也可以访问)
4、public:表示全局的,公共访问权限,若某一个字段/方法使用public修饰,则可以在当前项目的任何地方访问。
助记方法:
-------------------------------------------------------------------
修饰符 | 类内部 | 同一个包 | 子类 | 相同地方 |
-------------------------------------------------------------------
private | 可以 | | | |
-------------------------------------------------------------------
无 | 可以 | 可以 | | |
-------------------------------------------------------------------
protected | 可以 | 可以 | 可以 | |
-------------------------------------------------------------------
public | 可以 | 可以 | 可以 | 可以 |
-------------------------------------------------------------------
一般地,字段都使用private修饰,为了安全性。
拥有实现细节的方法,一般使用private修饰,不希望外界看到该方法的实现细节。
一般的方法使用public修饰,供外界直接调用。
一般地,我们不使用缺省的,即使要使用,也仅仅是暴露给同包中的其他类。
一般在继承关系中,父类需要把一个方法只暴露给子类,需要使用protected。