访问控制符详解

default (包访问权限 )
如果类里的成员或者一个外部类不使用任何访问控制符修饰,我们称为包访问权限,default访问控制的成员或外部类可以被相同包下的其他类访问。
private (当前类访问权限 )
如果类里的成员使用private访问控制符来修饰,则这些成员只能在当前类的内部被访问。
protected (子类访问权限 )
如果类里的成员使用protected访问控制符修饰,那么类里的成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。
public (公共访问权限 )

如果类的成员或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否具有父子继承关系。 

访问控制符使用原则

类里的绝大部分Field都应该使用private修饰,只有一些static修饰的、类似全局变量的Field,才可能考虑使用public修饰。除此之外,有些方法只用于辅助实现该类的其他方法,这些方法称为工具方法,工具方法也应该使用private修饰。 
如果某个类主要用做其他类的父类,该类里包含的其他大部分方法可能仅希望被其子类重写,而不想被外界直接调用,则应该使用protected修饰这些方法。 
希望暴露出来给其他类自由调用的方法应该使用public修饰。因此,类的构造器通过使用public修饰,从而允许在其他地方创建该类的实例。因为外部类通常都希望被其他类自由使用,所以大部分外部类都使用public修饰。 
通过访问控制符的介绍不难发现,访问控制符用于控制一个类的成员是否可以被其他类访问,对于局部变量而言,其作用就是它所在的方法,不可能被其他类访问,因此不能使用访问控制符来修饰。

posted @ 2016-06-21 20:12  人间值得  阅读(187)  评论(0编辑  收藏  举报