多个代码文件,包
理解包的作用与命名规范
掌握多类多文件的项目结构
能正确导入和使用其他包的类
核心讲解
(1)为什么需要包
分类管理:类多了按功能、按模块分类,方便管理
避免重名:不同包下类名可以相同,不会冲突
权限控制:配合访问修饰符,控制访问权限
(2)包的命名规范
全部小写,用点分隔,一般是公司域名反写 + 项目 + 模块,比如: com.company.project.module
包声明必须在 Java 文件的第一行。
(3)import 导入
用其他包的类,需要 import 导入。
导入单个类:
import 包名.类名;导入包下所有类:
import 包名.*;java.lang 包下的类自动导入,不用写,比如 String、System
(4)访问修饰符
表格
修饰符 | 同类 | 同包 | 子类 | 不同包 |
|---|---|---|---|---|
public | ✅ | ✅ | ✅ | ✅ |
protected | ✅ | ✅ | ✅ | ❌ |
默认(包私有) | ✅ | ✅ | ❌ | ❌ |
private | ✅ | ❌ | ❌ | ❌ |
代码示例
// 文件1:com/demo/utils/StringUtil.java
package com.demo.utils;
public class StringUtil {
public static boolean isEmpty(String s) {
return s == null || s.trim().length() == 0;
}
}
// 文件2:com/demo/test/PackageDemo.java
package com.demo.test;
// 导入其他包的类
import com.demo.utils.StringUtil;
public class PackageDemo {
public static void main(String[] args) {
String s = "";
// 使用导入的工具类
boolean empty = StringUtil.isEmpty(s);
System.out.println("是否为空:" + empty);
// java.lang包不用导入,直接用
String str = "hello";
System.out.println(str.length());
}
}
常见误区
包名大写 / 中文:包名必须全小写,用英文,不能有中文和大写
import 写在 package 前面:package 必须在第一行,然后是 import,然后是类
同名类分不清:不同包的同名类,要用全限定名(包名 + 类名)区分
private 类也能访问:private 只能在本类里用,不同类哪怕同包也不行
课后练习
创建两个包:
util和test在 util 包里写一个计算工具类,有加减乘除静态方法
在 test 包里导入工具类,调用方法测试
简述 public、protected、默认、private 四种访问权限的范围

