乐趣区

15.java 包的定义和使用

概念
包指的是一个程序的目录。在最早的时候如果要开发一个程序,只需要定义个 *.java 文件,然后再该文件中编写所需的类,编译之后程序将直接保存在当前目录下,而利用包可以实现同一个程序的拆分。
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。为这些类型提供访问保护和命名空间管理的功能。
包语句的语法格式为:
package pkg1[.pkg2[.pkg3…]];
示例:
package net.java.util;
public class hello{
public static void main(String args[]){
System.out.println(“hello world”);
}
}
那么它的路径应该是 net/java/util/hello.java 这样保存的。package(包) 的作用是把不同的 java 程序分类保存,更方便的被其他 java 程序调用。
最好不要自己手工创建这些目录,应该使用命令自动生成,如下:
编译:javac -d . hello.java“-d”:表示生成目录,根据 package 的定义生成。
“.”:表示保存的路径,如果为 ”.” 表示在当然所在的路径下生成。

类都应当定义在包中,那么完整的类名就是:” 包. 类 ”。
包的作用

把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

包的导入
为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 import 语句可完成此功能。
在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:
import package1[.package2…].(classname|*);
使用“包.*”通配符,表示导入程序里面所需要的类,而不是全部导入。
如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略。
常用系统包

java.lang: 包含了 String、object、Interger 等类。从 jdk1.1 之后,此包会自动导入。
java.lang.reflect: 反射包;
java.util: java 的工具包,提供了大量工具类。
java.util.regex: 正则工具包。
java.text: 国际化处理包。
java.io: 进行输入、输出处理,以及文件处理。
java.net: 网络编程开发包。
java.sql: 数据库程序开发包。
java.applet:Applet 程序开发包,已废弃。Applet 是嵌套在网页上的 java 程序,采用绘图的方式完成网页的显示,实现一些动态效果,随着时间的发展已经不再使用了。

java.awt、javax.swing:图形界面开发包。主要进行单机版程序界面开发。

jdk1.0 的时候推出了 awt 开发包,但是该包大量使用了 windows api,导致程序缺乏可移植性。
jdk1.2 的时候推出了 javax.swing 开发包,采用了 java 自己编写的 api,是一个轻量级的 GUI 工具包。

jar 命令
在任何一个项目中肯定会存在大量的.class 文件,如果将这些.class 文件直接交付,会导致文件过多,而且程序非常没有结果,所以在交付用户使用之前,会使用 jar 命令将包中的 class 文件压缩成一个文件。
生成的 jar 文件不能直接使用,需要将其文件路径配置到 CLASSPATH 中,如果使用第三方 jar 文件,也必须配置。
补充:CLASSPATH 是 java 程序解释类文件时所使用的加载路径。

退出移动版