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、在未打包的情况下,系统默认将一个文件视为一个包。
- 同一文件中的所有类和非私有成员都可互相访问,正是包功能。
- 不同文件中,类比为不同的包中,此时只有共享类、共享成员可互相访问,和子类可访问父类受保护的成员。
- 不同路径下,即为不同路径下的包,情况同上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix