Java_修饰符
在java中修饰符主要分为两类:++访问修饰符++和++非访问修饰符++
访问控制修饰符
修饰符 | 当前类 | 同一包内 | 子孙类 | 其他包 | 其他包子孙类 |
---|---|---|---|---|---|
public | Y | Y | Y | Y | Y |
protected | Y | Y | Y | N | Y/N |
default | Y | Y | N | N | N |
private | Y | N | N | N | N |
■ 访问控制和继承
- 父类中声明为public的方法在子类中必须为public
- 父类声明的protected的方法在子类中不能声明为private。可以声明为protected或public
- 父类声明的private方法,不能被继承
非访问修饰符
■ static 修饰符
用来修饰类方法和类变量、动态代码块,对类变量和方法的访问可以直接使用 类名.属性名 和 类名.方法名 的方式访问。
■ final 修饰符
用来修饰变量、方法和类,分别表示变量不可变,方法不可覆盖,类不可继承。
变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变
■ abstract 修饰符
抽象类:
- 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充
- 一个类不能同时被abstract和final修饰,如果一个类包含抽象方法,那么该类一定要声明为抽象类
- 抽象类可以包含抽象方法和非抽象方法
抽象方法:
- 抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供
- 抽象方法不能被声明为final和static
- 任何继承抽象类的子类必须实现父类的所有抽象方法,子类也是抽象类
- 抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public
■ synchronized 修饰符
synchronized声明的方法同时只能被一个线程访问
■ transient 修饰符
transient 关键字表示成员变量不参与序列化的过程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律