【Java基础学习打卡14】Java注释

news2024/11/13 9:46:52

目录

  • 前言
  • 一、什么是注释
  • 二、注释的重要性
  • 三、单行、多行注释
    • 1.单行注释
    • 2.多行注释
  • 四、文档注释
    • 1.文档注释
    • 2.JDK官网文档
    • 3.javadoc生成文档
  • 五、注释建议
  • 总结


前言

本文介绍Java注释,它是我们在Java编程中必不可少的。Java注释有单行注释、多行注释和文档注释。对于初学者,千万不要忙着敲代码,而忽视注释。


一、什么是注释

注释(汉语词语): 注释是指解释子句的文字,也指用文字解释字句。

在这里插入图片描述
假设你正在计划一次旅行。你会收集各种关于目的地的旅行指南、地图和建议。旅行指南上的注释就好比你的旅行计划中的注释。

在这里插入图片描述
在旅行指南上,你会发现一些附加的信息和提示。比如,景点介绍、历史背景、推荐的行程安排、交通指南等。这些信息并不是必须的,但它们提供了额外的解释和指导,让你更好地了解和计划你的旅行。

同样地,在编程中,注释也是提供额外解释和指导的。 它们用于向代码中添加解释、说明和提示,帮助你和其他开发者更好地理解代码。

二、注释的重要性

程序员最讨厌的两件事:别人不写注释和自己要写注释!(程序员的心声)

在这里插入图片描述

程序员最讨厌的这两件事也说明了程序注释的重要性和必要性。接下来就来谈谈为什么要添加程序注释,这里考虑以下几个方面进行说明:

  • 提高代码可读性: 帮助自己或他人更快地理解代码的意图和实现方式。
  • 方便代码维护和修改: 帮助开发人员更快地理解代码的结构和功能,减少维护和修改过程中的困惑和错误。
  • 促进团队协作: 团队开发中,注释起到了文档的作用。减少沟通成本,提高工作效率。
  • 加深自己对代码的理解: 编写注释是一种对代码进行深入理解和思考的过程。帮助自己对代码的理解更加准确和全面。

我们要在日常的编程学习中养成编写注释的习惯,以提高编程能力和团队合作能力。其实几乎所有的编程语言有提供了添加注释的方法,Java语言也不例外,Java语言提供了三种注释:

  • 单行注释
  • 多行注释
  • 文档注释

三、单行、多行注释

1.单行注释

单行注释(Single-line comments):以双斜线( // )开头,用于注释一行代码或说明代码的作用。 单行注释会被编译器忽略,不会被执行。

// 单行注释,以下代码向控制台输出一句话
System.out.println("Hello World!");
// System.out.println("这行代码注释掉了,不会被执行!");

2.多行注释

多行注释(Multi-line comments):以斜线星号( /* )开头和星号斜线( */ )结尾,用于注释多行代码或详细说明代码的功能。 多行注释会被编译器忽略,不会被执行。

/*
 * 多行注释
 * main()是Java程序入口
 */
public static void main(String[] args) {
	// 单行注释,以下代码向控制台输出一句话
	System.out.println("Hello World!");
	// System.out.println("这行代码注释掉了,不会被执行!");
	
}

注释也可以帮助我们调试程序,当程序出现 Bug,注释可以辅助排除错误。在代码中使用注释来排查错误非常有帮助。你可以注释掉部分代码,逐步测试和调试,以确定具体的错误发生在哪个代码段,并逐步缩小问题的范围。

四、文档注释

Java 中除了单行注释、多行注释,还提供了一种功能更强大的注释形式:文档注释。

1.文档注释

文档注释(Documentation comments):是一种特殊类型的注释,以斜线星号星号( /** )开头和星号斜线( */ )结尾,位于类、方法或变量声明之前。 文档注释支持使用一些特殊的标签,如 @author@version@param@return@throws 等,用于提供对应信息的文档说明。可以通过 Java 工具(javadoc)自动生成 API 文档,方便其他开发人员查阅和使用你的代码。同样,文档注释会被编译器忽略,不会被执行。

/**
 * Java Hello World
 *
 * @since 2023/7/6 18:16
 * @author root
 * @version 1.0
 */
public class HelloWorld {

	/*
		多行注释
		main()是Java程序入口
	*/
	public static void main(String[] args) {
		// 单行注释,以下代码向控制台输出一句话
		System.out.println("Hello World!");
		// System.out.println("这行代码注释掉了,不会被执行!");

	}
}

在类上方添加文档注释,对该类进行基础说明。其中涉及到一些标签,如 @author 指定程序作者,@version 指定源文件版本,@since 指定程序开发时间。

2.JDK官网文档

Java 提供了大量的基础类库,这些基础类也提供了相应的 API 文档,告诉开发者如何使用这些类,以及这些类中的方法。

登录 Oracle 官网,找到 Documentation Download(文档下载)。

在这里插入图片描述

点击 jdk-11.0.19_doc-all.zip 下载文档,下载成功后会得到一个 jdk-11.0.19_doc-all.zip 压缩包。解压缩到任意路径后得到 docs 文件夹,该文件夹下的内容就是 JDK 文档。

在这里插入图片描述

可以打开 index.html 文件,就可以看到 JDK 11 API 文档首页,然后像浏览其他网站一样鼠标点击链接进入文档的各个页面。

我们找到 System 类,查看其说明:

在这里插入图片描述

可以看到该类的继承关系,类的简要介绍,类的成员变量及成员方法详细用法说明,总之是官方的详细说明书。

3.javadoc生成文档

我们如何将自己的程序中的文档注释提取生成API文档呢?使用 javadoc 命令。

语法格式:javadoc [options] [packagenames] [sourcefiles] [@files]

在这里插入图片描述

目前会简单使用即可,所以我们的命令是 javadoc -d docs -version -author HelloWorld.java

  • -d docs,指定生成文档的输出目录是 docs
  • -version -author, 提取文档中的 @version@author 标记的信息(javadoc 命令默认不会提取 @version@author 标记的信息。)

在这里插入图片描述
命令执行后,生成了很多个文件,我们看一下 docs 下的文件:

在这里插入图片描述

找到 index.html 页面,点开查看我们自己生成的 API。可以看到当初在类上方添加的文档注释被提取到了相应位置。

在这里插入图片描述
文档注释是一个良好的编程习惯,它不仅可以帮助其他开发人员理解和使用你的代码,也可以在生成 API 文档时提供详细的文档说明。你可以使用工具(如 javadoc)来生成文档,使得 API 文档更加易读、易用。

五、注释建议

作为初学者,不要惧怕写注释,慢慢养成写注释的良好习惯。这里对添加注释进行补充说明,也是添加注释的一些建议:

  • 注释应该清晰、简洁且易于理解。它们应该解释代码的目的、思路、输入/输出,注重关键信息的提供。
  • 注释应始终保持与代码同步,并及时更新。一旦代码更改,相应的注释也需要相应地进行更新。
  • 注释旨在帮助他人理解代码,包括你自己未来的自己。养成良好的注释习惯对于长期的代码维护和项目协作是至关重要的。

总结

注释很重要,希望大家不要忽视!

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

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

相关文章

BUUCTF Web CyberPunk WriteUp

想直接查看payload的点这里 前言 二次注入(Second-Order Injection)是指攻击者在应用程序中注入恶意数据,然后在稍后的操作或不同的上下文中再次使用该恶意数据,导致安全漏洞。它通常发生在数据库查询、数据导出、报告生成等过程…

基于springboot博客论坛系统设计与实现(源码+文档LW+数据库+报告)

HBLOG 是一个博客论坛网站,分为游客端和管理员端。游客端主要有注册登录,查看文章,发表撰写文章,管理自己的文章,评论文章等功能;而管理员端主要有登录,查看近期数据,查看日志&#…

如何做好迭代回顾 2/4

事故根因分析:上集 北京某软件开发公司,专门为电信供应商做定制软件开发,比如发短信做些推广活动等。公司希望做过程改进,我首次与公司老板访谈: 我:过程改进主要帮助管理层更好达到公司业务目标。你们自己…

365天深度学习训练营-第T5周:运动鞋品牌识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境: 语言环境:Python3.10.7编译器:VScode深度学习环境:TensorFlow2 一、前期工作: 1、导入…

【活动】如何在工作中管理情绪

写在前面 近期发生的新闻热点再度引发公众对稳定情绪和心理健康的关注。有时候我们遇到的最大的敌人,不是运气也不是能力,而是失控的情绪和口无遮拦的自己。如何在工作中保持稳定的情绪?谈谈我的看法。 愤怒的危害 说到愤怒这种情绪&#xf…

基于深度学习的高精度鸟类目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度鸟类目标(鹦鹉(Crested Myna)、麻雀(Eurasian Tree Sparrow)、黑头文鸟(Chestnut Munia)、白领翡翠(Collared Kingfisher)、太阳鸟…

【C语言】进阶指针(二)—>函数指针与回调函数

目录 前言: 一、函数指针 代码1分析: 代码2分析: 二、函数指针数组 三、指向函数指针数组的指针 四、回调函数(模拟实现库函数qsort) (一)void*类型指针的作用 (二&#xf…

Spark—Shell命令对WordCount案例的基本操作(统计、去重、排序、求平均值及join)

一、统计、去重 1、案例数据介绍 WordCount统计:某电商网站记录了大量的用户对商品的收藏数据,并将数据存储在名为buyer_favorite的文本文件中。文本数据格式如下: 2、启动spark-shell 配置好spark环境,若还没有环境可以参考…

windows下环境问题总结

nacos 启动后在spring 项目中无法加载yml配置文件 spring.datasource.platform mysql 注意一定要放开这行,不放的话,可能会导致服务可以成功注册,但是,我们无法使用局部的 nacos里yml配置文件的属性

Linux:项目自动化构建工具——make/Makefile

文章目录 一.make与Makefile的关系1.Makefile2.make 二.项目清理1.clean2. .PHONY 前言: 本章主要内容有认识与学习Linux环境下如何使用项目自动化构建工具——make/makefile。 一.make与Makefile的关系 当我们编写一个较大的软件项目时,通常需要将多个…

js实现图片压缩

创建一个type"file"的input标签&#xff0c;用于文件上传。 <input type"file" name"" id"upload" value"" />通过js实现图片压缩 window.onload function () {const upload document.getElementById("upload…

9.10UEC++生成、销毁actor

BeginPlay&#xff1a; 1.SpawnActor&#xff1a;<模板类>&#xff08;模板::staticclass&#xff08;&#xff09;&#xff0c;FVector const class&#xff0c;FRotation const class&#xff09; 生成一个actor 2.Destory&#xff08;&#xff09;从世界中销毁一个a…

SSM学习笔记-------Spring(一)

SSM学习笔记-------Spring&#xff08;一&#xff09; Spring_day011、课程介绍1.1 为什么要学?1.2 学什么?1.3 怎么学? 2、Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 课程学习路线 2.3 Spring核心概念…

【zabbix 代理服务器】

目录 一、部署 zabbix 代理服务器1、设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy2、初始化数据库1、创建数据库并指定字符集2、创建 zabbix 数据库用户并授权 3、导入数据库信息4、修改 zabbix-proxy 配置文件5、启动 zabbix-proxy6、在所有主机上配置 hosts 解析7、在…

Maven高级(四)--私服

一.作用 我们所拆分的模块是可以在同一个公司各个项目组之间的项目组之间进行资源共享的&#xff0c;这就需要Maven的私服来实现。 二.场景 两个项目组之间如何基于私服进行资源的共享的呢&#xff1f; 例如A开发了一个模块tlias-utils,B团队进行项目开发&#xff0c;要想使用…

CentOS7 主机万兆网卡配置端口聚合后如何与华为交换机连接并上网

环境: 组装机测试服务器 CentOS 7 CentOS Linux release 7.7.1908 (Core) 网卡1:瑞昱普通千兆板载网卡 网卡2:EB-LINK intel 82599芯片PCI-E X8 10G 光模块千兆单模1310 交换机 HW-S1730S-S48T4S-A Version 5.170 (S1730 V200R021C01SPC200) 光模块千兆单模1310 …

Python学习笔记(十七)————模块相关

目录 &#xff08;1&#xff09;模块 &#xff08;2&#xff09;模块的导入方式 ①import 模块名 ②from 模块名 import 功能名 ③from 模块名 import * ④as定义别名 &#xff08;3&#xff09;自定义模块 &#xff08;4&#xff09;测试模块 &#xff08;1&#xff09…

List移除元素的四种方式

List 移除某个元素 四种方式&#xff1a; 方式一&#xff0c;使用 Iterator &#xff0c;顺序向下&#xff0c;如果找到元素&#xff0c;则使用 remove 方法进行移除。方式二&#xff0c;倒序遍历 List &#xff0c;如果找到元素&#xff0c;则使用 remove 方法进行移除。方式…

使用TypeScript实现贪吃蛇小游戏(网页版)

本项目使用webpackts所编写 下边是项目的文件目录 /src下边的index.html页面是入口文件 index.ts是引入所有的ts文件 /modules文件夹是用来存放所有类的 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

VoxaMech 的机甲装备 — NFT 系列

一套新的机甲装备即将诞生&#xff1a;帝国甲虫套装是无与伦比的权威和威望的象征&#xff0c;体现了古代帝国甲虫的雄伟壮观。其华丽的铠甲散发着帝王般的优雅气息&#xff0c;其威严的外观在战场上令人肃然起敬。 每套装备由手臂部件、胸甲、头盔、腿部件和剑组成。每件装备单…