Java 包(package)与 import
包(Package)是 Java 中组织类和接口的机制,用于避免命名冲突和管理代码结构。理解包的使用和 import 语句是编写大型 Java 程序的基础。本章将详细介绍包的概念和使用。
package 的概念与使用
什么是包
包(Package)是 Java 中用于组织类和接口的命名空间机制。
作用:
- 避免命名冲突:不同包可以有同名类
- 组织代码:将相关类组织在一起
- 访问控制:配合访问修饰符控制可见性
- 便于管理:大型项目的代码组织
包声明
语法:package 包名;
// 文件:com/example/Student.java
package com.example;
public class Student {
// ...
}
规则:
- 必须是文件的第一行有效代码(注释除外)
- 一个文件只能有一个包声明
- 包名通常使用小写字母
- 包名通常对应目录结构
包命名规范
推荐命名方式:
- 使用反向域名:
com.example.project - 全小写字母
- 多个单词用点分隔
- 避免使用 Java 关键字
// ✅ 推荐
package com.example.student;
package org.apache.commons;
package java.util;
// ❌ 不推荐
package Example; // 应该小写
package com.example.Student; // 应该小写
package com.example.class; // 不能使用关键字
包与目录结构
包名必须对应目录结构:
项目根目录/
└── src/
└── com/
└── example/
├── Student.java (package com.example;)
├── Teacher.java (package com.example;)
└── util/
└── Helper.java (package com.example.util;)
编译和运行:
# 编译
javac -d out src/com/example/*.java
# 运行
java -cp out com.example.Student
默认包
不声明包时,类属于默认包:
// 文件:Student.java(无包声明)
public class Student {
// ...
}
注意:
- 默认包中的类不能导入
- 不推荐使用默认包
- 生产环境应该使用明确的包名