当前位置: 首页 > news >正文

[Java 基础]注释

注释在编程中扮演着非常重要的角色,它们是写给人类阅读的,而不是给计算机执行的。良好的注释可以极大地提高代码的可读性和可维护性。

为什么需要注释?

  1. 提高可读性: 注释可以解释代码的功能、实现思路、特殊处理等,帮助其他开发者(或者未来的你)更容易理解代码的意图
  2. 方便维护: 当代码需要修改或维护时,清晰的注释能够帮助开发者快速定位需要修改的部分,并理解修改可能带来的影响
  3. 生成文档: 特定格式的注释(Javadoc)可以被工具自动提取,生成专业的 API 文档
  4. 调试代码: 在调试过程中,可以使用注释临时禁用某些代码块,方便定位问题
  5. 作为备忘: 开发者可以在代码中添加一些临时的想法或注意事项

Java 支持三种类型的注释:

1. 单行注释 (Single-line Comments)

以双斜线 // 开头,直到行尾的内容都被视为注释。单行注释通常用于解释代码中的某一行或一小段代码的功能。

// 这是一个单行注释
int age = 30; // 声明一个整型变量 age 并赋值为 30

2. 多行注释 (Multi-line Comments)

以 /* 开头,以 / 结尾。/ 和 */ 之间的所有内容都被视为注释,可以跨越多行。多行注释通常用于解释一段较长的代码块、一个方法或一个类的整体功能。

/** 这是一个多行注释。* 它可以跨越多行,* 用于解释一段代码的功能或者提供更详细的说明。*/
public class MyClass {// ... 类的内容 ...
}

:::color3
多行注释不能嵌套使用。也就是说,在一个多行注释内部不能再包含另一个 /* ... */ 注释。

:::

3. 文档注释 (Documentation Comments) - Javadoc

文档注释是一种特殊的多行注释,以 /** 开头,以 */ 结尾。文档注释主要用于为类、接口、方法、构造器、字段和枚举常量生成 API 文档。Javadoc 工具可以解析这些注释,并生成 HTML 格式的文档。

文档注释的内容可以包含特殊的标签(以 @ 开头),用于描述不同的方面,例如参数、返回值、异常、作者、版本等。

/*** 这是一个表示一个简单计算器的类。* 它提供了加法和减法运算。** @author John Doe* @version 1.0* @since 1.0*/
public class Calculator {/*** 将两个整数相加。** @param a 第一个整数* @param b 第二个整数* @return 两个整数的和* @throws ArithmeticException 如果发生算术错误(虽然在这个例子中不会发生)*/public int add(int a, int b) {return a + b;}/*** 从第一个整数中减去第二个整数。** @param a 被减数* @param b 减数* @return 两个整数的差*/public int subtract(int a, int b) {return a - b;}
}

常用的 Javadoc 标签包括:

  • @author:标识作者。
  • @version:标识版本号。
  • @param:描述方法的参数,后面跟着参数名和描述。
  • @return:描述方法的返回值。
  • @throws@exception:描述方法可能抛出的异常,后面跟着异常类名和描述。
  • @since:标识从哪个版本开始引入。
  • @deprecated:标识该元素已过时,并说明替代方案。

因为 IDEA 创建的 Java 类是没有类注释的,所以,我一般习惯在 IDEA 中创建一个类文档注释模板,让后配置对应的触发字符,输入触发字符就能快速的生成类的文档注释:

/***** @author jxd* {@code @date} $DATETIME$*/

date("yyyy/MM/dd HH:mm")

在已创建的类上使用 *head ,然后按下 Enter 键,就会自动生成文档注释模板。

编写良好注释的建议

  1. 保持注释的简洁和清晰: 注释应该易于理解,避免使用过于晦涩的术语或过长的段落。
  2. 注释应该准确地反映代码的功能: 当代码修改时,务必更新相关的注释,确保它们与代码保持一致。
  3. 解释代码的意图,而不是仅仅描述代码做了什么: 好的注释应该解释 为什么 这段代码是这样写的,而不是简单地重复代码本身。
  4. 为重要的代码块、方法和类添加注释: 特别是那些逻辑复杂、容易产生误解或者对外提供的 API。
  5. 使用文档注释 (Javadoc) 为公共 API 生成文档: 这有助于其他开发者了解如何使用你的代码。
  6. 避免过度注释: 对于显而易见的代码,不一定需要添加注释。过多的注释反而会使代码显得冗余。
  7. 使用统一的注释风格: 保持整个项目注释风格的一致性,提高代码的整体可读性。
  8. 及时删除不再需要的注释: 例如,一些临时的调试代码注释在问题解决后应该被删除。
http://www.lqws.cn/news/118297.html

相关文章:

  • 生成式AI驱动的智能采集实战
  • NeRF PyTorch 源码解读 - NDC空间
  • Linux容器篇、第一章_01Linux系统下 Docker 安装与镜像部署全攻略
  • 回归分析-非线性回归及岭回归.docx
  • LabVIEW的MathScript Node 绘图功能
  • OpenCV C++ 学习笔记(六):绘制文本、几何绘图、查找/绘制轮廓
  • HRI-2025 | 大模型驱动的个性化可解释机器人人机交互研究
  • 中国区域30m/15天植被覆盖度数据集(2010-2022)
  • [论文阅读]PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning
  • 隐藏层-机器学习
  • TongNCS 控制台没有显示验证码的解决方案(by sy+lqw)
  • 某校体育场馆结构自动化监测
  • Axios学习笔记
  • STM32实战:智能环境监测站设计方案
  • Cisco IOS XE WLC 任意文件上传漏洞复现(CVE-2025-20188)
  • 光学系统常用光学参数的测量
  • 如何有效删除 iPhone 上的所有内容?
  • 上门服务小程序订单系统框架设计
  • 4.1 HarmonyOS NEXT原生AI能力集成:盘古大模型端侧部署与多模态交互实战
  • 【Java】CopyOnWriteArrayList
  • 人机融合智能 | 可穿戴计算设备的多模态交互
  • 如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核态、用户态内存泄漏
  • 星闪开发之Server-Client 指令交互控制OLED灯案例
  • 结构性设计模式之Flyweight(享元)
  • 关于udp——mqtt运行注意事项
  • 改进社区检测和检索策略大幅提升GraphRAG性能新框架-ArchRAG
  • GICv3电源管理
  • 解决 Java 项目中 “zip END header not found“ 错误
  • Doris查询Hive数据:实现高效跨数据源分析的实践指南
  • ASP.NET Core 中间件深度解析:构建灵活高效的请求处理管道