命名包

随着世界各地的程序员使用 Java 编程语言编写类和interface,许多程序员很可能会对不同的类型使用相同的名称。实际上,前面的示例就是这样做的:当java.awt包中已经有Rectangle类时,它定义了Rectangle类。但是,如果它们在不同的程序包中,则编译器允许这两个类具有相同的名称。每个Rectangle类的全限定名称包括程序包名称。也就是说,graphics包中的Rectangle类的完全限定名称为graphics.Rectangle,而java.awt包中的Rectangle类的完全限定名称为java.awt.Rectangle

除非两个独立的程序员为其软件包使用相同的名称,否则这将很好地工作。是什么避免了这个问题?惯例。

Naming Conventions

包名称以小写形式编写,以避免与类或interface的名称冲突。

公司使用其反向的 Internet 域名开始其程序包名称,例如,example.com的程序员创建的名为mypackage的程序包的com.example.mypackage

单个公司内部发生的名称冲突需要按照该公司内部的约定进行处理,也许可以通过在公司名称后添加区域或项目名称(例如com.example.region.mypackage)来解决。

Java 语言包本身以java.javax.开头

在某些情况下,互联网域名可能不是有效的软件包名称。如果域名中包含连字符或其他特殊字符,或者软件包名称以数字或其他字符开头的 Java 名称开头都是非法的,或者软件包名称包含保留的 Java 关键字,则可能会发生这种情况例如“ int”。在这种情况下,建议的约定是添加下划线。例如:

合法化软件包名称

Domain Name 软件包名称前缀
hyphenated-name.example.org org.example.hyphenated_name
example.int int_.example
123name.example.com com.example._123name
首页