0%

Java 包

在 Java 中,我们使用 package(包)对相关的类、接口和子包进行分组。这样做的好处有:

使相关类型更容易查找
避免命名冲突,比如说 com.itwanger.Hellocom.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
2
3
4
5
6
package com.itwanger.test;

public class Cmower {
private String name;
private int age;
}

如果需要在另外一个包中使用 Cmower 类,就需要通过 import 关键字将其引入。有两种方式可供选择,第一种,使用 * 导入包下所有的类:

import com.itwanger.test.*;

第二种,使用类名导入该类:

import com.itwanger.test.Cmower;
Java 和第三方类库提供了很多包可供使用,可以通过上述的方式导入类库使用。

1
2
3
4
5
6
7
8
9
10
11
package com.itwanger.test;

import java.util.ArrayList;
import java.util.List;

public class CmowerTest {
public static void main(String[] args) {
List<Cmower> list = new ArrayList<>();
list.add(new Cmower());
}
}

03、全名

有时,我们可能会使用来自不同包下的两个具有相同名称的类。例如,我们可能同时使用 java.sql.Date 和 java.util.Date。当我们遇到命名冲突时,我们需要对至少一个类使用全名(包名+类名)。

1
2
List<com.itwanger.test.Cmower> list1 = new ArrayList<>();
list.add(new com.itwanger.test.Cmower());

摘抄自:https://mp.weixin.qq.com/s/ySGMnBLhKtBnztivj_ImEg