Java 包和 API
Java 中的包 用于将相关的类分组在一起。可以将其视为文件目录中的一个文件夹。我们使用包来避免名称冲突,并编写更易于维护的代码。
包分为两类:
-
内置包(来自 Java API 的包)
-
用户定义的包(创建自己的包)
内置包
Java API 是一个预先编写的类库,可以在 Java 开发环境中免费使用。
该库包含用于管理输入、数据库编程等等的组件。完整的列表可以在 Oracle 的网站上找到:
该库分为包和类。这意味着您可以导入单个类(以及其方法和属性),或者导入包含属于指定包的所有类的整个包。
要使用库中的类或包,您需要使用import关键字:
// 导入单个类
import package.name.Class;
// 导入整个包
import package.name.*;
导入类
如果找到要使用的类,例如Scanner类(用于获取用户输入),请编写以下代码:
// 导入 Scanner 类
import java.util.Scanner;
在上面的示例中,java.util 是一个包,而 Scanner 是 java.util 包的一个类。
要使用 Scanner 类,请创建该类的对象,并使用 Scanner 类文档中提供的任何可用方法。在我们的例子中,我们将使用 nextLine() 方法,该方法用于读取一整行:
// 使用 Scanner 类获取用户输入
import java.util.Scanner;
class MyClass {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter username");
String userName = myObj.nextLine();
System.out.println("Username is: " + userName);
}
}
导入包
有许多包可供选择。在前面的例子中,我们使用了 java.util 包中的 Scanner 类。该包还包含日期和时间设施、随机数生成器和其他实用类。
要导入整个包,请以星号(*)结束句子。以下示例将导入 java.util 包中的所有类:
// 导入整个 java.util 包
import java.util.*;
用户定义的包
要创建自己的包,您需要了解 Java 使用文件系统目录来存储它们。就像计算机上的文件夹一样:
└── root
└── mypack
└── MyPackageClass.java
要创建一个包,请使用 package 关键字:
// MyPackageClass.java
package mypack;
class MyPackageClass {
public static void main(String[] args) {
System.out.println("This is my package!");
}
}
将文件保存为 MyPackageClass.java,并编译它:
C:\Users\Your Name>javac MyPackageClass.java
然后编译包:
C:\Users\Your Name>javac -d . MyPackageClass.java
这会强制编译器创建"mypack"包。
- -d 关键字指定了保存类文件的目标位置。您可以使用任何目录名称,例如 c:/user(Windows),或者如果要将包保留在同一目录中,可以使用点号".",就像上面的例子一样。
注意:包名应以小写字母写入,以避免与类名冲突。
在上面的例子中编译包时,将创建一个名为"mypack"的新文件夹。
要运行 MyPackageClass.java 文件,请写入以下内容:
C:\Users\Your Name>java mypack.MyPackageClass
输出将是:
This is my package!
一些额外的说明:
-
可以使用多个 import 语句来导入多个类或包。
-
可以使用 static import 语句导入静态方法和变量。
-
可以使用包名来组织代码,例如将所有与数据库相关的类放在一个包中,将所有与 GUI 相关的类放在另一个包中。
-
使用包可以提高代码的清晰度和可维护性。