如果我要使用以下方法,请使用Java Tutorial获取包命名约定:
org.example.hyphenated_name.user
org.example.hyphenated_name.product
这将如何转化为实际创建此包结构。我是否会为org
创建一个单独的包,然后在org
内创建example
等等,或者它只是2个包org.example.hyphenated_name.user
和org.example.hyphenated_name.product
基本上我想知道的是.
是否仅用于命名分离,或者它是否用于表示每次物理创建新包。
答案 0 :(得分:3)
这是它在磁盘驱动器上的物理外观:
$ mkdir -p org/example/hyphenated/name/user
$ mkdir -p org/example/hyphenated/name/product
$ tree org
org
└── example
└── hyphenated
└── name
├── product
└── user
5 directories, 0 files
实际上,你有一个包结构:
通过创建这样的结构,您现在可以使用每个包进行不同的操作。 org.example.hyphenated.name.product
中的产品特定操作类和org.example.hyphenated.name.user package
中的特定于用户的操作类。这样你就可以把同时使用这两个包的类放在例如org.example.hyphenated
包。通过这种方式,您可以创建一个良好构建的应用程序结构,以便其他人(以及2-3个月内为您)更容易阅读。
编辑: 通常,您不需要关心为包创建文件夹,因为您的IDE应该照顾而不是您。
答案 1 :(得分:2)
包不是您必须创建的“东西”(除了您通常必须创建用于存储源文件的目录层次结构)。你只是说你的类属于某个包,编译器说“OK,不管你想要什么”。 package_a.package_b
和package_a.package_b.package_c
之间没有对语言语义有任何影响的内置关系。 (我的意思是,如果你在package_a.package_b.package.c
中有一个班级,那么在该班级中,package_a.package_b
中的班级没有什么特别的,而不是package_z.package_y
。在这两种情况下,它只是“其他一些包”。)