java--访问修饰符
java访问修饰符
java中有四种访问修饰符,分别是:
- public (公共的)
- friendly (默认的)
- protected (受保护的)
- private (私有的)
通过访问修饰符,能控制变量的访问范围,实现对类的封装。
tips:
- 类, 只能被 public 和 friendly 修饰。
- 属性和方法,四种都可使用。
1、功能
四种访问修饰符的访问控制范围还受是否有打包的影响,不过可以类比理解。
(1) 有打包
解释:即每个类文件中都有 package 语句。
在这种情况下,访问修饰符符合主流的定义。
public(共享)
1、修饰属性、方法、类。
2、无访问限制。只要导包正确,任何位置的文件都可访问。
friendly (默认)
1、修饰属性、方法、类
2、具有包访问性。能被同一包中的其他类访问
3、其他包不可访问。
protected(受保护的)
1、修饰属性和方法,不能修饰类。
2、具有包访问性:能被同一包中的其他类可访问
3、具有继承访问性:任意路径下的类,通过继承共享类,便能访问父类中的受保护的成员。
private(私有的)
1、修饰属性和方法,不能修饰类。
2、私有属性和方法,只有类自身可访问,外部不可访问。
(2)未打包
解释:即每个类文件中都没有 package 语句。
在这种情况下,在同一目录下的类文件不被承认是同包。导致访问修饰符的包访问性不起作用。
tips:
1、没有打包的类,无法通过导包来访问。
2、要访问没有打包的类,必须在编译运行命令中设置寻包路径。
public(共享)
1、修饰属性、方法、类。
2、无访问限制。
friendly (默认)
1、修饰属性、方法、类
2、可被同一文件中类访问。
protected(受保护的)
1、修饰属性和方法,不能修饰类。
2、可被同一文件中类访问。
3、具有继承访问性:任意路径下的类,通过继承共享类,便能访问父类中的受保护的成员。
private(私有的)
1、修饰属性和方法,不能修饰类。
2、私有属性和方法,只有类自身可访问,外部不可访问。
2、总结
1、打包类时。
- 同一包中,准确地说是包名相同的类,所有类、非私有成员能互相访问。
- 不同包,或不同路径下的包,都只有共享类、共享成员可访问,还有子类可访问父类受保护的成员。
2、在未打包的情况下,系统默认将一个文件视为一个包。
- 同一文件中的所有类和非私有成员都可互相访问,正是包功能。
- 不同文件中,类比为不同的包中,此时只有共享类、共享成员可互相访问,和子类可访问父类受保护的成员。
- 不同路径下,即为不同路径下的包,情况同上。
如果觉得本文有用,万望看官慷慨解囊,不吝打赏,激励本编提供更加优质的内容
[点击进行打赏](https://www.cnblogs.com/52note/p/16507868.html)