包(Package)
包的本质就是通过文件夹管理类。这和python中的包类似。
定义和用途
包是Java中组织类和接口的一种方式。它们提供了一种命名空间机制,可以避免不同开发者编写的类名冲突。例如,如果你有一个com.example
包,你可以在其中定义一个Utility
类,而另一个开发者也可以在com.anotherexample
包中定义一个同名的Utility
类,两者不会冲突。
如何使用
一般来说,我们创建一个java项目的时候,系统都会自动生成一个src文件夹。该文件夹里存放我们的代码。随后,以vscode为例,选中src文件夹下你要创建类or包的地方,右键选择“创建包(类)”。紧接着系统会自动为你创建包(类),例如这就是在src/com/example文件夹下选择“创建Utility类”的结果。注意:如果在package一行,vscode一直报错“incorrect package”。可以重启vscode来解决,错误原因可能是因为没有扫描到新创建的文件
package com.example;
public class Utility {
// 类的实现
}
特点
- 命名空间:包提供了一种命名空间机制。
- 访问控制:包中的类和接口可以通过
public
,protected
,default
(没有关键字,包私有), 和private
关键字来控制访问权限。 - 编译时组织:编译器使用包来确定类的位置,并控制它们的可见性。
- 无依赖管理:包不提供依赖管理,因此需要使用外部工具(如Maven或Gradle)来管理依赖。
![[Pasted image 20240821195816.png]]
![[Pasted image 20240825234553.png]]
包的导入
想要使用某个包中的类,使用import关键字
// 第一行非注释行是 package 语句
package com.example;
// import 语句引入其他包中的类
import java.util.ArrayList;
import java.util.List;
// 类的定义
public class MyClass {
// 类的成员和方法
}
当然也可以使用通配符来表示导入所有包
// 第一行非注释行是 package 语句
package com.example;
// 使用*表示导入java.utils下所有类与包
import java.util.*;
// 类的定义
public class MyClass {
// 类的成员和方法
}