Java 笔记 07:包机制,JavaDoc 文档的生成方式,Math 工具类,以及字符串连接符相关内容

一、前言

记录时间 [2024-04-25]

系列文章简摘:
Java 笔记 01:Java 概述,MarkDown 常用语法整理
Java 笔记 04:Java 数据类型基础,数据类型转换,及其相关场景拓展
Java 笔记 05:变量和常量相关知识,Java 编程的命名规范
Java 笔记 06:基本运算符概述,分类,和使用方式

更多 Java 相关文章,请参考上面专栏哦。

本文详细介绍了 Java 包机制,以及如何使用 CMD / IDEA 方式生成 JavaDoc 文档。此外,还整理了数学工具类 Math 的使用,拓展了字符串连接符相关内容。


二、包机制

1. 概述

包机制在编程中是一种组织代码的方式,用于将相关的类、接口、枚举和注解组织在一起。这有助于模块化代码,使其更易于管理和重用。

在 Java 中,包由关键字 package 定义,通常位于 Java 文件的顶部。包名是以点 . 分隔的标识符序列,例如:com.example.myapp 是包名。

// 包名 com.example.myapp
package com.example.myapp;

2. 作用

包机制 package 用于区分 Class 的命名空间,一般使用公司域名倒置作为包名

使用包机制的优点如下:

  1. 组织性:可以将相关的类和接口组织在一起,使项目结构更加清晰。
  2. 封装性:可以限制类的可见性,有助于实现信息隐藏和封装。
  3. 重用性:允许将代码模块化,使其可以在不同的项目中重用。
  4. 命名空间:提供了一个命名空间,避免了命名冲突,特别是当使用第三方库或框架时。

3. 创建和使用

创建和使用包,需在 Java 文件的顶部添加 package 声明,然后在其他文件中使用 import 语句来导入需要的类或接口。

注意:导入的类名不能与当前的类名重复!

例如:

// 文件路径: com/example/myapp/MyClass.java
package com.example.myapp;

// 在其他文件中使用,用 import 导入
import com.example.myapp.MyClass;

// * 通配符:导入这个包下所有的类
import com.example.myapp.*;

更多编程规范,请参考:阿里巴巴 Java 开发手册。


三、JavaDoc 生成文档

1. API 文档概述

详细的 API 官方文档,请查看:Java SE API 官方在线文档。

javadoc 是 Java 开发工具包 JDK 中的一个命令行工具,用于从 Java 源代码文件生成 API 文档。这些生成的文档通常以 HTML 格式呈现,提供了对类、方法、字段等的详细描述,以及相应的注释。

使用 javadoc 工具,可以为 Java 代码添加特殊的注释(称为 Javadoc 注释),这些注释使用特定的标记(如 @param@return@throws 等)来描述代码的各个部分。这样,javadoc 工具就可以根据这些注释生成详细的文档

javadoc 命令用来生成自己的 API 文档,可以添加的参数有:

  • @author:作者名
  • @version:版本号
  • @since:指明需要最早使用的 jdk 版本
  • @param:参数名
  • @return:返回值情况
  • @throws:抛出异常情况

2. 生成 API 文档

生成 API 文档有两种方式,一种是命令行 javadoc 方式,另一种是借助集成开发工具 IDEA

编写测试类

使用 Java 编写一个简单的类,用于展示如何使用 Javadoc 注释。

  • 写在上面的,是的注释;
  • 写在方法上面的,是方法的注释。
package com.example.myapp;

/**
 * 这是一个简单的类,用于展示如何使用 Javadoc 注释。
 *
 * @author yuanyuan
 * @data 2024/4/24
 * @description JavaDoc 学习
 * @version 1.0
 * @since 1.8
 */

public class MyClass {
    
    // 一个属性
    String name;

    /**
     * 这是一个简单的方法,用于添加两个整数。
     *
     * @param a 第一个整数
     * @param b 第二个整数
     * @return 两个整数的和
     */
    public int add(int a, int b) {
        return a + b;
    }
    
    /**
     * 这是一个简单的方法,可以抛出异常
     *
     * @param name
     * @return name 的值
     * @throws Exception
     */
    public String test(String name) throws Exception {
        return name;
    }
}

使用命令行生成

使用 CMD 打开命令行窗口,找到 MyClass.java 文件所在目录,执行 javadoc 命令:

  • 使用 UTF-8 编码可以解决中文乱码问题。
# encoding 设置编码为 UTF-8
# charset  设置字符集编码为 UTF-8

javadoc -encoding UTF-8 -charset UTF-8 MyClass.java

javadoc 命令执行完成后,MyClass.java 文件所在目录会新增很多文件,就是生成的 JavaDoc 文档。


其中,index.html 是文档入口,双击打开查看:

在这里插入图片描述


查看类:

在这里插入图片描述


查看方法:

在这里插入图片描述


使用 IDEA 生成

用 IDEA 生成 javaDoc 文档的方式:选中 package ==> Tools ==> Generate JavaDoc

在这里插入图片描述


选择生成的范围:

在这里插入图片描述


设置文档输出的位置和参数:

在这里插入图片描述


设置语言和字符集:勾选在浏览器中打开。

在这里插入图片描述


四、Math 类的使用

java.lang.Math 类提供了一系列用于执行基本数学运算的静态方法。以下是 Math 类的一些常用方法及其用法。

1. 常数

  • Math.PI:圆周率,约等于 3.14159。
  • Math.E:自然对数的底,约等于 2.71828。

2. 数学运算

  • Math.abs(x):返回 x 的绝对值。
  • Math.ceil(x):返回大于或等于 x 的最小整数。
  • Math.floor(x):返回小于或等于 x 的最大整数。
  • Math.round(x):返回 x 最接近的整数,四舍五入。

3. 指数和对数

  • Math.exp(x):返回自然数 ex 次幂。
  • Math.log(x):返回 x 的自然对数。
  • Math.log10(x):返回 x 的以 10 为底的对数。
  • Math.pow(x, y):返回 xy 次幂。

4. 三角函数

  • Math.sin(x)Math.cos(x)Math.tan(x):分别返回 x 的正弦、余弦和正切值。
  • Math.asin(x)Math.acos(x)Math.atan(x):分别返回 x 的反正弦、反余弦和反正切值。
  • Math.atan2(y, x):返回从 x 轴正向到点 (x, y) 之间的角度。

5. 其他

  • Math.sqrt(x):返回 x 的平方根。
  • Math.max(x, y):返回 xy 中的最大值。
  • Math.min(x, y):返回 xy 中的最小值。
  • Math.random():返回一个大于或等于 0.0 且小于 1.0 的随机浮点数。

6. 使用示例

以下是 Math 类的一些常用方法在 Java 程序中的具体应用:

public class MathExample {
    public static void main(String[] args) {
        double a = 25.5;
        double b = -15.7;
        
        // 计算绝对值
        System.out.println("Absolute value of a: " + Math.abs(a));
        
        // 向上取整
        System.out.println("Ceil value of a: " + Math.ceil(a));
        
        // 向下取整
        System.out.println("Floor value of a: " + Math.floor(a));
        
        // 四舍五入
        System.out.println("Round value of a: " + Math.round(a));
        
        // 计算平方根
        System.out.println("Square root of a: " + Math.sqrt(a));
        
        // 最大值
        System.out.println("Max value between a and b: " + Math.max(a, b));
        
        // 最小值
        System.out.println("Min value between a and b: " + Math.min(a, b));
        
        // 随机数
        System.out.println("Random number: " + Math.random());
        
        // 计算幂指数,如 2 的 3 次方
        System.out.println("2^3 = " + Math.pow(2,3));
    }
}

五、字符串连接符

在 Java 中,可以使用 + 运算符来连接字符串。

值得注意的是,当字符串连接符的位置发生改变时,输出的结果也有可能不同。

具体参考如下案例:定义 a 和 b,a + b 的值为 30,当 a + b 与字符串进行拼接时:

  • 空字符串拼接在前面""+a+b,输出结果为 1020,这是因为 a 和 b 被转换成了字符串;
  • 空字符串拼接在前面,但 a+b 加括号""+ (a+b),输出结果为 30
  • 空字符串拼接在后面a+b+"",输出结果为 30
int a = 10;
int b = 20;

// 字符串连接符   +   , String
// 比较
System.out.println(a+b);        	//30
System.out.println(""+a+b);     	//1020
System.out.println(""+ (a+b) ); 	//30
System.out.println(a+b+"");     	//30

六、总结

本文详细介绍了 Java 包机制,以及如何使用 CMD / IDEA 方式生成 JavaDoc 文档。此外,还整理了数学工具类 Math 的使用,拓展了字符串连接符相关内容。


一些参考资料

狂神说 Java 零基础:https://www.bilibili.com/video/BV12J41137hu/
TIOBE 编程语言走势: https://www.tiobe.com/tiobe-index/
Typora 官网:https://www.typoraio.cn/
Oracle 官网:https://www.oracle.com/
Notepad++ 下载地址:https://notepad-plus.en.softonic.com/
IDEA 官网:https://www.jetbrains.com.cn/idea/
Java 开发手册:https://developer.aliyun.com/ebook/394
Java 8 帮助文档:https://docs.oracle.com/javase/8/docs/api/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第55篇:创建Nios II工程之Hello_World<一>

Q:本期我们开始介绍创建Platform Designer系统,并设计基于Nios II Processor的Hello_world工程。 A:设计流程和实验原理:需要用到的IP组件有Clock Source、Nios II Processor、On-Chip Memory、JTAG UART和System ID外设。Nios I…

Golang | Leetcode Golang题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; func rotate(matrix [][]int) {n : len(matrix)// 水平翻转for i : 0; i < n/2; i {matrix[i], matrix[n-1-i] matrix[n-1-i], matrix[i]}// 主对角线翻转for i : 0; i < n; i {for j : 0; j < i; j {matrix[i][j], matrix[j][i]…

2024采用JSP的酒店客房管理系统源代码+毕业设计论文+开题报告+答辩PPT

点击下载源码 摘 要 计算机技术发展至今已走过了半个多世纪之久&#xff0c;现在各个阶层、各个领域都使用着计算机&#xff0c;在这个快节奏的时代中它已经成为了社会生活的必需品。它的出现是现代社会进步&#xff0c;科技发展的标志。同时现代化的酒店组织庞大&#xff0c;…

C++: IO流

目录 1、C语言输入输出 流的概念&#xff1a; 2、CIO流 3、C文件IO流 1、C语言输入输出 C语言中我们用到的最频繁的输入输出方式就是scanf () 与 printf() 。 scanf(): 从标准输入设备 ( 键 盘 ) 读取数据&#xff0c;并将值存放在变量中 。 printf(): 将指定的文…

新能源汽车小米su7

小米su7汽车 function init() {const container document.querySelector( #container );camera new THREE.PerspectiveCamera( 20, window.innerWidth / window.innerHeight, 1, 50000 );camera.position.set( 0, 700, 7000 );scene new THREE.Scene();scene.background ne…

深入浅出 Spring Boot 3.x:从原理到实战,全面解锁 Java 后端开发新潮流

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

一分钟教会你使用51cto网课视频下载工具下载51cto视频

想要学习技术知识&#xff0c;提升自己的职业能力&#xff0c;51cto是一个绝佳的选择。然而&#xff0c;有时候我们可能无法随时在线观看这些精彩的视频课程。别担心&#xff01;我将在一分钟内教您如何使用51cto视频下载工具&#xff0c;将这些宝贵的学习资源下载到您的设备上…

物联网鸿蒙实训解决方案

一、建设背景 在数字化浪潮汹涌的时代&#xff0c;华为鸿蒙系统以其前瞻的技术视野和创新的开发理念&#xff0c;成为了引领行业发展的风向标。 据华为开发者大会2023&#xff08;HDC. Together&#xff09;公布的数据&#xff0c;鸿蒙生态系统展现出了强劲的发展动力&#x…

钡铼IOy系列模块在无人值守智能仓库中的成功运用,提升仓储物流效率

随着科技的不断发展&#xff0c;无人值守智能仓库正成为现代物流行业的一个重要趋势。在这个快节奏的时代&#xff0c;提升仓储物流效率是企业追求的目标之一。钡铼IOy系列模块为无人值守智能仓库的成功运作提供了关键支持。本文将探讨钡铼IOy系列模块在无人值守智能仓库中的应…

子域名如何启用HTTPS,有免费泛域名SSL证书吗

如今HTTPS已经成为了网站标配&#xff0c;然而&#xff0c;对于一些刚刚起步的网站或是个人博客而言&#xff0c;如何自动跳转到HTTPS&#xff0c;以及免费SSL证书的获取&#xff0c;可能还是一个需要解决的问题。下面就来详细解答这两个问题。 我们需要明确HTTPS与SSL之间的关…

OpenAI 和 Moderna 合作,推进 mRNA 医学

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、关于 Moderna Moderna 是 mRNA 医学领域的佼佼者&#xff0c;其通过不断推动 mRNA 技术的发展&#xff0c;正在重塑药物的制造方式&#xff0c;并深刻地改变我们治疗和预防疾病的方法。凭借在科学、…

包装类简单认识泛型

文章目录 包装类基本数据类型和对应的包装类装箱和拆箱自动装箱和自动拆箱 什么是泛型引出泛型语法 泛型类的使用 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了一个包装类型…

骑砍2霸主MOD开发(6)-使用C#-Harmony修改本体游戏逻辑

一.C#-Harmony反射及动态注入 利用C#运行时环境的反射原理,实现对已加载DLL,未加载DLL中代码替换和前置后置插桩. C#依赖库下载地址:霸王•吕布 / CSharpHarmonyLib GitCodehttps://gitcode.net/qq_35829452/csharpharmonylib 根据实际运行.Net环境选择对应版本的0Harmony.dll…

为什么没有办法画圆角?

在AutoCAD里面画圆角不是单纯的在两条线之间点一下就好了&#xff0c; 主要要输入这个半径。

“浙大学报英文版”订阅号这篇文章,丢名校脸面

今天翻到“浙大学报英文版”订阅号分享的一篇文章&#xff0c;介绍了一篇奇文&#xff0c;该论文的摘要&#xff08;Abstract&#xff09;非常任性&#xff0c;仅有一个单词— “Yes”。 原文链接&#xff1a;https://mp.weixin.qq.com/s/riw_YU3caBf7E6rdCbLE-Q 该论文是由J. …

如何为Postgres数据库设置安全的访问控制和权限管理

文章目录 解决方案1. 使用角色和权限管理2. 配置认证方法3. 使用网络访问控制4. 定期审查和更新权限 示例代码1. 创建角色并分配权限2. 配置密码认证3. 配置网络访问控制 总结 PostgreSQL是一个功能强大的开源关系型数据库系统&#xff0c;提供了丰富的权限和访问控制机制&…

bit、进制、位、时钟(窗口)、OSI七层网络模型、协议、各种码

1.bit与进制 &#xff08;个人理解&#xff0c;具体电路是非常复杂的&#xff09; 物理层数据流&#xff0c;bit表示物理层数据传输单位&#xff0c; 一个电路当中&#xff0c;通过通断来表示数字1和0 两个电路要通讯&#xff0c;至少要两根线&#xff0c;一根作为电势参照…

C语言入门课程学习笔记2

C语言入门课程学习笔记2 第8课 - 四则运算与关系运算第9课 - 逻辑运算与位运算第10课 - 深度剖析位运算第11课 - 程序中的选择结构 本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 第8课 - 四则运算与关系…

Java | Leetcode Java题解之第48题旋转图像

题目&#xff1a; 题解&#xff1a; class Solution {public void rotate(int[][] matrix) {int n matrix.length;// 水平翻转for (int i 0; i < n / 2; i) {for (int j 0; j < n; j) {int temp matrix[i][j];matrix[i][j] matrix[n - i - 1][j];matrix[n - i - 1]…

【Camera KMD ISP SubSystem笔记】CAM SYNC与DRQ②

DRQ的作用&#xff1a; DRQ负责调度管理pipeline里的node处理逻辑(通过node之间的dependency依赖机制) 利用多线程并行处理Pipeline中并行的node&#xff0c;加快处理速度 DRQ运转流程&#xff1a; DRQ先告诉node fill dependency&#xff0c; 此时seq id 为0…