一. Java 包
Java 包(Packages)是用来将相关类组织在一起的。
可以把它想象成文件目录中的一个文件夹。我们使用包来避免类名冲突,并编写更易于维护的代码。
包可以分为两类:
- 内置包(Built-in Packages):来自 Java API 的包。
- 用户自定义包(User-defined Packages):用户自己创建的包。
内置包
Java API 是一个包含预先编写的类的库,可以免费使用,并且包含在 Java 开发环境中。这个库包含了许多组件,用于管理输入、数据库编程等功能。
也就是说,你可以导入一个类(以及它的方法和属性),或者导入整个包,这个包包含了所有属于该包的类。
要使用库中的某个类或包,你需要使用关键字 import
。
1 | import package.name.Class; // 导入单个类 |
导入一个类
如果你找到一个你想使用的类,例如用于获取用户输入的类,可以写如下代码:
1 | import java.util.Scanner; // 导入Scanner类 |
这样,你就可以在代码中使用 Scanner
类来处理用户输入了
1. 示例 : 用户输出
使用 Scanner
类获取用户输入:
1 | import java.util.Scanner; // 导入 Scanner 类 |
导入一个包 有许多包可供选择。
Scanner类位于java.util
包中。这个包还包含日期和时间功能、随机数生成器以及其他工具类。
要导入整个包,可以在句末加上星号(*)。以下示例将导入该包中的所有类:import java.util.*;
1 | import java.util.*; // 导入 java.util 包 |
在上述示例中可以把原本导入的包换成import java.util.*
,效果是一样的
2.用户的输入类型
在上面的示例中,我们使用了 nextLine()
方法,它用于读取字符串。
要读取其他类型的输入,有以下:
nextLine() |
读取字符串 (string) |
---|---|
nextBoolean() |
读取一个布尔值(boolean) |
nextByte() |
读取一个字节值(byte) |
nextDouble() |
读取一个双精度浮点值(double) |
nextFloat() |
读取一个单精度浮点值(float) |
<1> 示例: 使用不同的方法来读取各种类型的数据
1 | import java.util.Scanner; |
注意:如果输入错误(例如在数字输入框中输入文本),您将会遇到异常/错误信息(例如 “InputMismatchException”)
解决之法待后面慢慢学 — . —
二. 用户定义的包
要创建自己的包,需要了解 Java 使用文件系统目录来存储包。就像电脑上的文件夹一样:
例如:
1 | └── 根目录 |
1. 创建一个包,使用关键字:package”
1 例如:创建一个mypack
包
1 | package mypack; // 创建了一个 mypack 包 |
2. 在命令提示符输出 MyPackageClass.java
首先找到文件绝对路径,cd一步步进入
然后编译它
1 | C:\Users\Your Name>javac MyPackageClass.java |
编译完后用
dir
命令查看当前目录中的文件和文件夹列表接着编译
package
:
1 | C:\Users\Your Name>javac -d . MyPackageClass.java |
- 最后运行
javac MyPackageClass.java
1 | C:\Users\Your Name>java mypack.MyPackageClass |
输出结果:
1 | This is my package! |
3. 示例中 -d 命令
在上述示例中这将迫使编译器创建 “mypack” 包。
该关键字指定了保存类文件的目标位置。可以使用任何目录名,例如 c:/user(Windows),或者,如果想将包保存在相同目录下,可以使用点号符号” . “,就像上面示例中的 “-d” 一样。
注意:包名应写为小写字母,以避免与类名冲突。