在 Java 文件中定义包的目的是什么?[已关闭]

2022-08-31 20:38:15

我是一个新手,刚刚了解到,如果我定义说

package my.first.group.here;
...

然后,此包中的Java文件将放在目录下。my/first/group/here

将一些 Java 文件放在包中的主要目的是什么?另外,如果我选择采用它,我应该如何对它们进行分组?

谢谢


编辑:对于任何可能再次遇到相同问题的人,我刚刚在Sun的软件包上找到了本教程


答案 1

让我们从“Java包”的定义开始,如维基百科文章所述:

Java 包是一种将 Java 类组织到类似于 Modula 模块的命名空间中的机制。Java 包可以存储在称为 JAR 文件的压缩文件中,从而允许类作为一个组而不是一次下载一个更快地下载。程序员通常还使用包来组织属于同一类别或提供类似功能的类。

因此,基于此,Java中的包只是一种用于组织类和防止类名冲突的机制。您可以随意命名它们,但 Sun 发布了一些命名约定,在命名包时使用这些约定:

唯一软件包名称的前缀始终以全小写的 ASCII 字母书写,并且应为顶级域名之一,当前为 com、edu、gov、mil、net、org 或 ISO 标准 3166、1981 中指定的用于标识国家/地区的英语双字母代码之一。

包名称的后续组件根据组织自己的内部命名约定而有所不同。此类约定可能指定某些目录名称组件为部门、部门、项目、计算机或登录名。

例子:

  • 孙网

  • com.apple.quicktime.v2

  • edu.cmu.cs.bovik.cheese


答案 2

我是一个大型应用程序,你一定会有两个完全相同的文件(java.util.Date和java.sql.Date),特别是当你开始引入第三方jar时。因此,基本上,您可以使用包来确保唯一性。

最重要的是,在我看来,包装将项目分解成有意义的部分。因此,我的 SQL 包具有与 sql 相关的代码,而我的记录器包处理日志记录。


推荐