目录
包是 Java 编程语言的一个特性,它能更好的组织和管理类之间的关系。
包是提供访问保护和名称空间管理的相关类型(类、接口、枚举和注释类型)的分组。
1.1、包名全部由小写字母(多个单词也全部小写)。
1.2、如果包名包含多个层次,每个层次用“.”分割。
1.3、包名一般由倒置的域名开头。
例如
| 域名 | 包命名 |
|---|---|
hyphenated-name.example.org | org.example.hyphenated_name |
example.int | int_.example |
123name.example.com | com.example._123name |
1.4、包名不能包含 Java 关键字。

创建一个 com.service 包
- package com.service;
-
- public interface Draggable {
-
- }
创建一个com.impl包
- package com.impl;
-
- import com.service.Draggable;
-
- public class Circle
- implements Draggable {
- }
导入包需要用到 import 关键字。格式:import 包名 类名。
- import java.util.HashMap;
-
- public class Main {
-
- public static void main(String[] args) {
- HashMap<Object,Object> paramMap = new HashMap<Object,Object>();
- }
-
-
- }
java.util.HashMap 就是完全限定名引用。如果还需要用到包java.util中的其他类,还需要额外导入,有时候代码看起来比较臃肿。
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- public class Main {
-
- public static void main(String[] args) {
- Map<Object,Object> paramMap = new HashMap<Object,Object>();
- List<String> list= new ArrayList<>();
- }
-
-
- }
import java.util.*;
面 import 语句中的星号(*)只能代表类,不能代表包,表明导入 java.util 包下的所有类。
等价于
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
在com.demo包新建StringUitl 工具类。
- package com.demo;
-
- public class StringUitl {
-
- public static boolean isEmpty(String name) {
- if(null == name || name.length() < 1){
- return false;
- }
- return true;
- }
-
- }
静态方法导入方式一
- package com.day04;
-
- import static com.demo.StringUitl.*;
-
-
- public class Main {
-
- public static void main(String[] args) {
-
- boolean check = isEmpty("");
-
-
- }
-
-
- }
静态方法导入方式二
- package com.day04;
-
- import com.demo.StringUitl;
-
- public class Main {
-
- public static void main(String[] args) {
-
-
- boolean check = StringUitl.isEmpty("");
-
- }
-
-
- }
SUN 公司在 JDK 中为程序开发者提供了各种使用工具类,这些类按功能不同分别被放入了不同的包中,供开发者使用。
java.lang 包含一些 Java 语言核心类,如String、Math、Integer、System和Thread等提供常用功能。在 java.lang 中还有一个子包:java.lang.reflect 用于实现 java 类的反射机制。
java.awt 包含构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用于构建和管理应用程序的图形用户界面(GUI)。
java.applet 包含applet运行所需的一些类。
java.net 包含执行与网络相关的操作的类。
java.io 包含提供多种输入/输出操作流的类。
java.util 包含一些实用工具类,如定义系统属性、日期日历相关的方法。
5.1、管理与组织的作用,可以把相同功能放同一个包。
5.2、避免相同名称类起冲突,因为包创建了一个新的名称空间。
5.3、访问控制,对包内互相可以访问,对包外限制访问。