Java包
包
包是一组类和接口的集合。包的引入,实现了封装特性。
同一个包中不允许有同名的类和接口,不同的包中允许同名的类和接口。包的引入,解决了类名的冲突问题。
包本身也是分级的,包中还可以有子包。
Java的包可以用文件系统来存放,也可以存放在数据库中。
在Windows中,包是以文件系统来存放的,包和类的关系类似于文件夹和文件的关系。包中的子包,相当于文件夹中的子文件夹。
顶层类和接口,只能定义public或默认访问权限,默认权限表示仅同一个包中可见,public 则是公共的,没限制。
Java中有两种包: 命名包 和 未命名包。
声明和导入包
[package 包名;]?
[import 包名.[类名 | *]? ; ]*
包名.类名 test = new 包名.类名();
包声明语句必须是源文件中的第一条语句。(前面可以有注释、空行)
指定包名后,该源文件中的所有类都属于这一个包中,不可能有某个类属于其它包。
对于同一个工作目录下的两个源文件,如果其声明的包是相同的,则这两个文件中的所有类均属于同一个包。
导入时,可以只导入一个包中的类(指定最后的类名),也可以导入这个包中的所有类(最后用*号表示)。
导入时的*号有一个限制:系统预定义的包可以随便导入,但如果要导入自定义包,则本源文件必须声明成一个命名包。
也可以不用import语句,而是直接使用 包名.类名。
注意,包的声明和导入语句,末尾的分号是必须的。
编译、运行包
javac 源文件名.java
,会在当前目录下生成class文件(虽然其包名可能是一长串)。如果要正常使用这个class文件,则必须手动创建其中包对应的目录,并移动本class到对应目录中。
javac -d . 源文件名.java
,会在 ./包名对应的路径 生成对应的目录结构,并将编译的class文件放入其中。
java 包名.类名
或 java 包名对应路径/类名
, 即可运行对应class文件。
jar文件
.jar 就是 ZIP格式的压缩文件,可以先压缩为 .zip 再改名 为 .jar,也可以用zip软查看.jar文件中的内容。
jar文件中可以有class文件或其它任何文件。
jar cvf jar包名.jar A.class B.class ...
,将多个class文件打包为一个jar包。
java -jar jar包名.jar
,执行一个jar包。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!