首先,这四种修饰符按权限大小依次为 public. protected. default. private
public (公有的)
1 . 可以修饰类,成员变量,成员方法,构造方法。
2 . 被public 修饰,可以在其他类,其他包中使用。
3 . 顶级类只能被public(公有) 和default(默认)修饰(这个文末有解释)。
protected(受保护)
1 .可以修饰成员变量,成员方法,构造方法。
2 . 不能修饰最外部的类。
3 . 被protected修饰后,只能被同包下的其他类访问;如果在不同包下的类要访问被protected修饰的成员,这个类必须是其子类。
default(默认的)
1 . 可以修饰类,成员变量,成员方法,构造方法
2 . dafault是在接口中使用,目的是为了解决接口的修改与现有的实现不兼容的问题,当用default修饰两个接口,然后用一个类去实现时就会出现报错。当实现其中的一个接口,在实现类中重写了该方法,以实现类的为准。
private(私有的)
1 . 可以修饰成员变量,成员方法,构造方法。
2 . 不能修饰外部类,如果修饰内部类,该类只能在该外部类中使用。
3 . 被private修饰的成员变量,只能在本类中使用,在其他类中无法使用,但是可以通过get和set方法进行访问和修改。
为什么顶级类(外部类)只能用public 和default修饰???
对于外部类来说,它的上一层是包,所以外部类只有两个作用域,一个是同包下,另外一个是任何位置,因此只需要两种权限,包控制权限和公开访问权,也就是public 和default.
来源:CSDN
作者:信封―
链接:https://blog.csdn.net/qq_44797749/article/details/104588811