java中的四种权限
备注:
- java中的“不同包”的概念是很严格的,比如现在有个包叫A,A包里面创建一个B包,那A包和B包虽然是包含的关系,但是这两个包是不同的包。
- default 不是写一个关键字default,而是什么都不写,代表default权限
- 下面的Yes代表可以访问,NO代表不可以访问
解析:
- 在同一个类下,成员之间可以随便相互访问
- 在同一个包下,类与类之间,不管是不是父子类,只有private成员不可访问
- 两个类在不同的包下,但是两个类是父子类的关系,那public和protected修饰的成员可以访问
- 两个类在不同的包下,并且两个类没有父子关系,那只有public的成员可以访问
- YES之间组成一个三角形,NO之间也组成了一个三角形
public | protected | (default) | private | |
---|---|---|---|---|
同一个类之间(我自己) | YES | YES | YES | YES |
同一个包之间(我邻居) | YES | YES | YES | NO |
不同包子类(我儿子) | YES | YES | NO | NO |
不同包非子类(陌生人) | YES | NO | NO | NO |