我的问题是为什么人们创建至少包含一个名为edu的文件夹,然后再创建一个名为mit的单个文件夹,并将所有代码放在子文件夹中的目录结构?
这是某种标识符吗?
计算机是否实际上会使用此结构 - 还是仅用于帮助读者?
如果是这样,它如何帮助读者?
这是某种标识符吗?
计算机是否实际上会使用此结构 - 还是仅用于帮助读者?
如果是这样,它如何帮助读者?
com.google.*
包中,而Microsoft将在com.microsoft.*
包中保存它们的代码。然后,如果两家公司都实现了一个SearchEngine类,就不会有命名冲突。edu.mit.*
子包中的代码很可能是由MIT的一个团队开发的。Java 的约定是安排源目录以匹配包层次结构。例如参见管理源和类文件。
因此,如果您有一个名为edu.mit.stk.Foo
的类,则其位置将为edu/mit/stk/Foo.java
。
它是一个命名空间。它可以防止类/包名冲突。通常它是公司的域名反转(例如com.ibm.PackageName
),但它的值是任意的,可以是任何东西。
为了与包约定相匹配(看起来像是反转的互联网域名)。
您可以在http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html上查看更多详细信息。