Java 包(Packages)
Java 包与API
Java 中的包用于对相关类进行分组。可将其视为文件目录中的文件夹。我们使用包来避免名称冲突,并编写更好的可维护代码。软件包分为两类:
- 内置包(来自Java API的包
- 用户定义的包(创建自己的包)
内置软件包
Java API 是Java开发环境中包含的一个预编写类库,可以免费使用。
该库包含用于管理输入、数据库编程等的组件。完整列表可在Oracles网站上找到:https://docs.oracle.com/javase/8/docs/api/。
该库分为包和类。这意味着您可以导入单个类(及其方法和属性),也可以导入包含属于指定包的所有类的整个包。
要使用库中的类或包,需要使用 import
关键字:
语法
import package.name.Class; // 导入 single 类
import package.name.*; // 导入整个包
导入类
如果需找到要使用的类,例如用于获取用户输入的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使用文件系统目录来存储它们。就像计算机上的文件夹一样:
实例
└── 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!