在 Java 中,我们使用 package(包)对相关的类、接口和子包进行分组。这样做的好处有:
使相关类型更容易查找
避免命名冲突,比如说 com.itwanger.Hello
和 com.itwangsan.Hello
不同
通过包和访问权限控制符来限定类的可见性
01、创建一个包
package com.itwanger;
可以使用 package
关键字来定义一个包名,需要注意的是,这行代码必须处于一个类中的第一行。强烈建议在包中声明类,不要缺省,否则就失去了包结构的带来的好处。
包的命名应该遵守以下规则:
- 应该全部是小写字母
- 可以包含多个单词,单词之间使用“.”连接,比如说 java.lang
- 名称由公司名或者组织名确定,采用倒序的方式,比如说,我个人博客的域名是
www.itwanger.com
,所以我创建的包名是就是com.itwanger.xxxx
。
每个包或者子包都在磁盘上有自己的目录结构,如果 Java 文件时在com.itwanger.xxxx
包下,那么该文件所在的目录结构就应该是com->itwanger->xxxx
。
02、使用包
让我们在名为 test 的子包里新建一个 Cmower 类:
1 | package com.itwanger.test; |
如果需要在另外一个包中使用 Cmower 类,就需要通过 import 关键字将其引入。有两种方式可供选择,第一种,使用 *
导入包下所有的类:
import com.itwanger.test.*;
第二种,使用类名导入该类:
import com.itwanger.test.Cmower;
Java 和第三方类库提供了很多包可供使用,可以通过上述的方式导入类库使用。
1 | package com.itwanger.test; |
03、全名
有时,我们可能会使用来自不同包下的两个具有相同名称的类。例如,我们可能同时使用 java.sql.Date 和 java.util.Date。当我们遇到命名冲突时,我们需要对至少一个类使用全名(包名+类名)。
1 | List<com.itwanger.test.Cmower> list1 = new ArrayList<>(); |