1、Java 包(package)
Java中的软件包用于区别类名的命名空间。可以理解为就是文件夹,并且使用了树形目录的存储方式。 我们使用软件包来避免名称冲突,并编写更好的可维护代码。 软件包分为两类:
- 内置软件包(来自Java API的软件包)
- 用户定义的软件包(创建自己的软件包)
2、内置包
Java API是Java开发环境中包含的,可免费使用的预编写类的库。
该库包含用于管理输入,数据库编程等的组件。完整列表可以在Oracle网站上找到:https://docs.oracle.com/javase/8/docs/api/。
该库分为包和类。可以导入单个类(以及其方法和属性),也可以导入包含所有属于指定包的类的整个包。
要使用库中的类或包,需要使用import
关键字导入:
语法
import package.name.Class; // 导入单个类 import package.name.*; // 导入整个包
3、使用import导入类
如果要导入使用的类,例如,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("输入 username"); String userName = myObj.nextLine(); System.out.println("Username 是: " + userName); } }
4、使用import导入包
有很多软件包可供选择。在前面的示例中,我们使用了java.util
包中的Scanner
类。该软件包还包含日期和时间工具,随机数生成器和其他实用程序类。
要导入整个包,需要使用星号(*
)。 以下示例将导入java.util
包中的所有类:
例如:
import java.util.*;
5、用户自定义包
要创建自己的包,需要了解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\cjavapy> javac MyPackageClass.java
然后编译该包:
C:\Users\cjavapy> javac -d . MyPackageClass.java
这将强制编译器创建“mypack”包。-d
关键字指定保存类文件的位置。可以使用任何目录名称,例如,c:/user(windows),或者,如果要将软件包保留在同一目录中,则可以使用点号.
,注意:软件包名称应使用小写字母,以避免与类名称冲突。
当我们在上面的示例中编译软件包时,创建了一个新文件夹,称为“mypack”。
要运行MyPackageClass.java文件,请编写以下内容:
C:\Users\cjavapy> java mypack.MyPackageClass
输出将是:
This is my package!
6、设置 CLASSPATH 系统变量
用下面的命令显示当前的CLASSPATH变量:
- Windows 平台(DOS 命令行下):C:\> set CLASSPATH
- UNIX 平台(Bourne shell 下):echo $CLASSPATH
删除当前CLASSPATH变量内容:
- Windows 平台(DOS 命令行下):C:\> set CLASSPATH=
- UNIX 平台(Bourne shell 下):unset CLASSPATH; export CLASSPATH
设置CLASSPATH变量:
- Windows 平台(DOS 命令行下): C:\> set CLASSPATH=C:\users\jack\java\classes
- UNIX 平台(Bourne shell 下):CLASSPATH=/home/jack/java/classes; export CLASSPATH