本文是《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自动导入相应的类,不必手写。具体参考配套视频教程。