本文是《Java学习指南》原书的网络版,作者邵发,拥有本书的全部权利。相关视频课程在此查看。

目录

第12章 包

12.1 包 package


第12章 包

12.1 包 package

当一个项目中的代码太多时,就需要分包管理。在Java里,把包叫做package,其实本质上就是分级目录管理。

例如,下面就一个实际项目的包结构,

在Eclipse里,可以视需要创建多个包,具体操作方法参见配套的视频教程。包名一般以全小写命名,必要的时候加下划线连接多个语句。

 

12.1.1 包路径与类路径

包的路径来描述包的分层结构,层次之间用点号隔开。例如,af.common.json 表示af下有一个common, common下有一个json。

包路径其实和Windows的文件目录结构是完全对应的,在windows文件资源管理器里,可以观察其目录层次。例如,

可以发现,af.common.json实际就对应项目源码src目录下的af\common\json\ 这个子目录。目录层次是一一对应的。

我们把 af.common.json 称为包路径。类似的,对于包下面的类,我们把 af.common.json.AfJSON 称为类路径。

12.1.2 包的声明

在添加一个类时,类的第一行必须为包声明,用于声明包的路径。如下图所示,在AfJSON.java的第一行,

package af.util;

要求:(1) 此行必须放在java文件的第一行;(2) 所声明的包路径,必须与实际路径一致。

一般情况下,我们在Eclipse里添加类时,会自动添加这一行包声明。

12.1.3 包的导入import

下面讨论一下,如果使用别的包下面的类。例如,一个类my.HelloWorld,想调用另一个包下面的类af.util.AfMath类。

则可以有两种方式。第一种方式,使用类的全路径af.util.AfMath,如下图所示,

另一方式,也是推荐的写法,使用import导入其他包的类,如下图,

在类的上面,先使用 import af.util.AfMath 表示将要使用这个类,然后在类里使用时直接使用类的名称即可,不必再写出全路径。

 

import有两种写法,
import af.uti.AfMath;  // 导入某个类
import af.util.*;  // 星号表示导入该包下的所有类

import是很常用的写法,必须熟练掌握。实际上在书写时,我们一般使用Eclipse自动导入相应的类,不必手写。具体参考配套视频教程。