java 如何使用包
使用包的基本概念
在Java中,包(package)用于组织类和接口,避免命名冲突并控制访问权限。包本质上对应文件系统的目录结构,便于管理大型项目中的代码。
创建包
在Java源文件顶部使用package关键字声明所属包。例如,文件Example.java的内容:
package com.example.utils;
public class Example {
// 类实现
}
文件必须保存在com/example/utils/目录下(相对于类路径),否则编译会报错。

导入包中的类
通过import语句使用其他包的类。导入方式分为三种:
- 单类导入:
import java.util.ArrayList; - 通配符导入:
import java.util.*;(导入包下所有类,但不包括子包) - 静态导入:
import static java.lang.Math.PI;(导入类的静态成员)
编译与运行带包的程序
使用-d参数指定编译输出目录,编译器会自动创建包对应的目录结构:

javac -d ./bin src/com/example/utils/Example.java
运行时需指定完整类名(含包名):
java -cp ./bin com.example.utils.Example
包访问权限控制
- 未指定修饰符的类/成员:仅同一包内可见
protected成员:同一包或子类可见public成员:所有包可见private成员:仅当前类可见
常见包管理工具
大型项目推荐使用构建工具管理包依赖:
- Maven:在
pom.xml中声明依赖项 - Gradle:在
build.gradle中配置依赖项
示例Maven依赖配置:
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>32.1.2-jre</version>
</dependency>
</dependencies>
最佳实践
- 包名采用逆序域名格式(如
com.company.project) - 避免使用默认包(无package声明)
- 合理划分功能模块到不同子包(如
dao,service,model) - 保持包内高内聚,包间低耦合






