四种权限修饰符
从小到大 | private | default | protected | public |
---|---|---|---|---|
同一个类 | V | V | V | V |
同一个包内的类 | X | V | V | V |
不同包内的子类(有继承) | X | X | V | V |
不同包内的非子类 | X | X | X | V |
- 所谓的权限就是别人是否能访问类、属性、方法
- 主要先掌握private和public
- 一般写方法时,最好写上private或者public
- 写类的时候,会在类名前加public
一、用在类身上的修饰符
权限修饰符:默认修饰符,public
状态修饰符:final
抽象修饰符:abstract
用的最多的:public
- 写一个类,前面没有加任何东西,就是默认修饰符(default):
//不写任何的修饰符,是默认修饰符(default),代表这个类只能在当前包被访问
class A{}
- 如果一个类写了public,代表这个类,任何人都能访问
- 如果一个类声明为final,代表这个类没有子类,不能被继承。
- 如果一个类声明为abstract,代表这个类不能new,只能由子类继承抽象类,并且要实现抽象类的抽象方法
二、用在成员变量(属性)身上的修饰符
权限修饰符:private, 默认修饰符,protected, public
状态修饰符:static, final
用的最多的:private
- 属性声明为private,表明这个属性只能在当前类中使用。
- 什么都不声明,默认的,表示在同一个包中能被访问。
- 属性声明为protected,后面再说。
- 属性声明为public,代表任何地方都可以访问这个属性。
- 属性声明为static,代表是一个静态属性看,访问的时候,通过类名访问。
- 属性声明为final,代表这个属性变成了“常量”。
三、用在构造方法的修饰符
权限修饰符:private,默认,protected,public
最多的:public
- 构造方法声明为public,代表这个类的外面可以调用构造方法来创建对象
- 构造方法声明为private,代表这个类的外面不可以调用构造方法来创建对象,但是这个类的内部是可以调用该构造方法的。
- 构造方法声明为protected,很少用
- 构造方法前面不写,表示默认,代表这个包内部可以访问。
四、用在成员方法的修饰符
权限修饰符:private, 默认修饰符,protected, public
状态修饰符:static, final
抽象修饰符:abstract
用的最多的:public
- 方法声明为private,表明这个方法只能在当前类中使用。
- 方法前面不写,表示默认,代表这个包内部可以访问
- 方法声明为protected,后面再说
- 方法声明为public,代表任何地方都可以访问这个方法。但是要注意,如果这个方法所属的类是private,那么其他地方就无法访问这个方法了,要注意这种关系
- 方法声明为static,代表静态方法,通过类名调用方法
- 方法声明为final,这个方法不能被重写Override
- 方法声明为abstract,这个方法需要被子类实现。
Protected
用的不多,简单了解一下。
protected修饰的方法只能在当前包中访问,或者子类访问。
网友评论