命名包
由于世界各地的程序员都使用Java编程语言编写类和接口,因此许多程序员可能会对不同的类型使用相同的名称。当定义了一个Rectangle类时,但该类Rectangle在java.awt包定义过。但是,如果两个类位于不同的包中,编译器允许它们具有相同的名称。每个Rectangle类的完全限定名包括包名。也就是说,图形包中Rectangle类的完全限定名是graphics.Rectangle,以及java中矩形类的完全限定名是java.awt.Rectangle。
命名约定
包名全部用小写字母书写,以避免与类名或接口名冲突。
公司使用他们的反向互联网域名来开始他们的包名——例如,com.example.mypackage表示一个程序员在example.com上创建的名为mypackage的包。
在单个公司内发生的名称冲突需要在该公司内按照约定处理,可能是在公司名称之后包含地区或项目名称(例如,com.example.region.mypackage)。
在某些情况下,互联网域名可能不是有效的软件包名称。如果域名包含连字符或其他特殊字符,如果包名称以数字或其他非法字符开头,或者包名称包含保留的Java关键字,例如“int”,则可能发生这种情况。在这种情况下,建议约定是添加下划线。例如:
使包名合法化
Domain Name | Package Name Prefix |
---|---|
hyphenated-name.example.org | org.example.hyphenated_name |
example.int | int_.example |
123name.example.com | com.example._123name |