Java中的修饰符

news/2025/10/22 20:35:30/文章来源:https://www.cnblogs.com/petrichorz/p/19158908

在 Java 中,修饰符(Modifiers)是用来修改类、方法、变量、构造器等定义的关键字。它们主要分为两大类:访问修饰符和非控制修饰符。

以下是 Java 中所有修饰符的详细分类和说明:
一、 访问修饰符 (Access Modifiers)
访问修饰符用于设置类、接口、变量、方法和构造器的访问级别(可见性)。

Java 中有 4 种访问修饰符:
public (公共的):
适用范围: 类、接口、方法、变量、构造器。
可见性: 权限最高。被 public 修饰的成员可以被任何地方的任何代码访问。
protected (受保护的):
适用范围: 方法、变量、构造器、内部类。
可见性:
可以被同一个包 (package) 中的所有类访问。
可以被不同包中的子类访问。
default (默认的/包私有的):
适用范围: 类、接口、方法、变量、构造器。
可见性: 这是不写任何访问修饰符时的默认状态。它只能被同一个包 (package) 中的类访问。
private (私有的):
适用范围: 方法、变量、构造器、内部类。
可见性: 权限最低。它只能在其所属的同一个类内部被访问。

二、 非控制修饰符 (Non-Access Modifiers)
非访问修饰符用于提供其他功能,例如实现继承、控制并发、管理内存等。

static (静态的):
适用范围:变量(类变量)、方法(类方法)、内部类、代码块。
功能:
变量/方法:使其归属于类本身,而不是类的实例(对象)。可以通过类名直接调用,无需创建对象。
代码块:静态代码块,在类加载时执行一次。
内部类:静态内部类。

final (最终的):
适用范围:类、方法、变量。
功能:
类:不能被继承(例如 String 类)。
方法:不能被子类重写 (override)。
变量:只能被赋值一次(常量)。如果是基本类型,值不能改;如果是引用类型,引用地址不能改(但对象内部的状态可以改)。

abstract (抽象的):
适用范围:类、方法。
功能:
类:抽象类。不能被实例化(不能 new),必须被子类继承。
方法:抽象方法。只有方法声明,没有方法体(以分号结尾)。包含抽象方法的类必须声明为抽象类。

synchronized (同步的):
适用范围:方法、代码块。
功能:用于多线程环境。确保同一时间只有一个线程可以执行被修饰的方法或代码块,防止并发问题。

volatile (易变的)
适用范围:变量。
功能:主要用于多线程。它保证了变量的可见性(一个线程修改了值,其他线程能立刻看到最新值)并禁止指令重排序(但不保证原子性)。

transient (短暂的):
适用范围:变量(成员变量)。
功能:在对象序列化(Serialization)时,被 transient 修饰的变量将被忽略,不会被包含在序列化的数据中。

native (本地的)
适用范围:方法。
功能:声明一个本地方法。该方法由非 Java 语言(如 C 或 C++)实现,Java 只提供一个声明(类似于抽象方法,没有方法体)。

strictfp (严格浮点,不常用):
适用范围:类、接口、方法。
功能:(Strict Floating-Point) 确保浮点数运算在所有平台上的结果都完全一致,遵循 IEEE 754 标准,防止因硬件差异导致浮点计算结果不同。

总结:修饰符的使用组合
修饰类: public, default, final, abstract, strictfp
修饰方法: public, protected, default, private, static, final, abstract, synchronized, native, strictfp
修饰变量: public, protected, default, private, static, final, volatile, transient
修饰构造器: public, protected, default, private

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF2078D Scammy Game Ad

设 \(f_{i, j}\) 为第 \(j\) 道的小人选择了第 \(i\) 个门,从 \(i \sim n\) 能够对答案产生多少贡献,倒着转移即可。

[树状数组]P11855 [CSP-J2022 山东] 部署 题解

完全不需要剖分啊,不知道 tag 在打什么劲。 首先看题面。 操作1是正常的操作,开一颗线段树记录 dfs 序区间修改。 操作2是反常的操作。这题需要记 bfs 序。这样就可以确保一个节点的直连节点 bfs 序是连续的。然后再…

行列式+矩阵树定理

https://www.luogu.com.cn/article/48au0mw4 行列式 对于矩阵 \(A_{[n],[n]}\) 其行列式为 \(det(A) = \sum\limits_{1∼n 的排列 P}{(-1)^{P 的逆序对个数} \prod\limits_{i=1}^{n}{A_{i,p_i}}}\)。 行列式的性质:单…

测试金字塔与测试左移:提升软件质量的双翼策略

无论团队规模大小,从今天开始审视你的测试策略,思考如何将这两种策略应用到你的项目中,必将收获显著的质量提升和效率改进。在快速迭代的现代软件开发中,如何保证产品质量同时加速交付,成为每个团队面临的挑战。今…

兼职MOer的幸福生活

搬运一下。零.前言组合意义天地生,代数推导jzy。一.Miller-Rabin素性测试 Miller-Rabin-Miller-Rabin-Mikuer-Robin-Milker-Rocky-Morty-Rick。 费马素性测试 费马曾言道:“\(a^{p-1} \equiv 1 \pmod p\) ,当 \(p\)…

20232323 2025-2026-1《网络与系统攻防技术》实验二实验报告

一、实验内容 1.使用netcat获取主机操作Shell,cron启动某项任务。 2.使用socat获取主机操作Shell, 任务计划启动 。 3.使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell。 …

[职业技术学院逃生]

作品状态: \(\color{green}正在更新\) 作品下载 点我 公告 #1点击查看代码 关于"职业技术学院逃生破解版"的态度我方对于职业学院逃生破解版(后称"破解版")表示否认,在1.1.7后本文来自博客园,作…

C#/.NET/.NET Core技术前沿周刊 | 第 58 期(2025年10.13-10.19)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

完整教程:阿里云上CentOS6.9(停止维护)导致的yum下载chrony失败如何解决?

完整教程:阿里云上CentOS6.9(停止维护)导致的yum下载chrony失败如何解决?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

九、OpenCV中视频的录制 - 指南

九、OpenCV中视频的录制 - 指南2025-10-22 20:20 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

高端网站设计中的微交互:细节如何决定用户体验 - 指南

高端网站设计中的微交互:细节如何决定用户体验 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

股票操作统计分析报告 - 2025-10-22

股票操作统计分析报告 - 2025-10-22生成时间: 2025-10-22 20:17:44数据来源: 9db.com股票操作统计分析报告数据统计时间: 2025-10-22 数据来源: 9db.com建仓次数最多的股票: 长江电力 (共2次)建仓详细统计 (前10名):1.…

2025年完整指南:DeepSeek OCR 如何通过“视觉压缩”将AI成本降低20倍?

2025年完整指南:DeepSeek OCR 如何通过“视觉压缩”将AI成本降低20倍?DeepSeek OCR 并非传统的光学字符识别工具,而是一种探索“视觉-文本压缩”的前沿AI模型。它通过将长文本转换成图像进行处理,极大地降低了计算…

LGP5494 [LG TPLT] 线段树分裂 学习笔记

LGP5494 [LG TPLT] 线段树分裂 学习笔记 \(\texttt{Luogu Link}\) 前言\(\texttt{Q:}\) 有什么数据结构是支持用合并&分裂查询答案信息的呢? \(\texttt{A:}\) \(\text{FHQ-Treap}\)。 \(\texttt{Q:}\) 还有吗? \…

k8s 常用命令 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

文档智能信息抽取技术在金融财税领域的应用研究与发展前景

在金融与财税这个由海量文档驱动的领域中,效率与准确性是生命线。从繁复的财务报表、五花八门的发票,到冗长的合同与合规文件,传统的人工处理方式不仅成本高昂、效率低下,还极易出错。随着人工智能技术的成熟,文档…

今日策略:年化436%,回撤7%,夏普比5.28, deap因子挖掘重构,附python代码 - 详解

今日策略:年化436%,回撤7%,夏普比5.28, deap因子挖掘重构,附python代码 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

申威架构ky10安装php-7.2.10.rpm详细步骤(国产麒麟系统64位)

申威架构ky10安装php-7.2.10.rpm详细步骤(国产麒麟系统64位)​1. 先确认系统环境​你用的应该是申威平台的银河麒麟系统(版本ky10)​,系统得是64位的(因为这rpm包是_64的)。打开终端(就是黑框框),先敲命令看…

Unity 虚拟仿真实验中设计模式的使用 ——策略模式(Strategy Pattern) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

vue2:v-if和v-show的区别以及造成的影响

<div class="form-box-4" v-show="checkedList.includes(0505)"><span class="form-box-4-label"><span style="color: red">*</span>三失一偏类型:…