访问修饰符也叫访问控制符,是指能够控制类、变量、方法的使用权限的关键字。
java有四种访问修饰符,分别是:private、默认、protected、public
public:用public修饰的类、变量、方法能被项目中其他所有的类所用,只是如果不在同一个包中,则需要通过import导入完整的类名,即包名.类名
protected:受保护的
被protected修饰的,只能在本类中、本包中以及其派生类中可以使用
默认:默认值
如果不写访问修饰符,则系统默认提供一个默认的访问修饰符,其仅限于本类中 以及本包中能使用,但是如果它的派生类和他在同一个包中,其派生类依然能够使用
private:私有的
被private修饰的类、bian变量或方法,只能在自己本类中被调用,private的权限是最保密的
通常我们把 属性私有化,xixi行为公开化。
有时候,如果我们想访问一个类的私有变量,我们可以在那个类中bia编写一个public方法huo获得其变量,然后通过调用公开化的方法从而shix实现获得私有变量
访问修饰符的选择:
1.如果我们想把自己编写的类可以为所有类所访问的话,我们可以选择public修饰符
2.如果我们想把自己编写的类只供给本类和本包中使用,则可以选择默认值
3.如果我们想控制一个类私密的数据的sh时候我们可以用private修饰,在超类中,不能用private,因为超类存在的作用就是因为有派生类,所以不能将数据仅仅suoz锁在超类中,这个时候我们选择用protected
访问修饰符用的注意:
在超类和派生类中,遵从“两小一大原则”:
两大:派生类的返回值类型要小于或等于超类的返回值类型
派生类抛出的异常类型要小于或等于超类抛出的异常类型
一小:派生类的访问修饰符要大于或等于超类的访问修饰符
也就是,当超类的为private时,派生类可以为默认值,也可以为protected、还可以为public
当超类的为默认值时,派生类可以为public、也可以为protected
当超类的为protected时,派生类必须为public
当超类的为public时,派生类为必须为public
如果没有特殊需求,派生类的访问修饰符写成public是绝不会错误的^ _ ^