我的問題是爲什麼人們至少創建一個名爲edu的文件夾,然後是另一個名爲mit的文件夾(例如),然後是子文件夾中的所有代碼?爲什麼人們在Java中創建類似edu.mit.stk的目錄結構?
這是某種標識符嗎?
計算機是出於任何原因實際使用的結構 - 還是僅用於幫助讀者?
如果是這樣,它對讀者有什麼幫助?
我的問題是爲什麼人們至少創建一個名爲edu的文件夾,然後是另一個名爲mit的文件夾(例如),然後是子文件夾中的所有代碼?爲什麼人們在Java中創建類似edu.mit.stk的目錄結構?
這是某種標識符嗎?
計算機是出於任何原因實際使用的結構 - 還是僅用於幫助讀者?
如果是這樣,它對讀者有什麼幫助?
這樣做是爲了防止名稱衝突。默認規則是使用域名背面作爲包裝結構
因此,Google會將其所有代碼保留在com.google.*
包中,而Microsoft會將其代碼保留在com.microsoft.*
包中。然後,如果兩家公司都實施SearchEngine類,則不會有命名衝突。
教育機構做同樣的事情,所以你知道,在edu.mit.*
子包的任何代碼是由一羣在MIT
Java約定是安排源目錄以匹配包層次結構。見例如Managing Source and Class Files。
所以,如果你有一個類edu.mit.stk.Foo
,那麼它將被定位爲edu/mit/stk/Foo.java
。
這是一個命名空間。它可以防止類/包名稱衝突。通常它是公司的域名反向(例如com.ibm.PackageName
),但它的值是任意的,可以是任何東西。
按照慣例Java包名稱遵循相反的順序域命名約定。因此edu.mit
是在mit.edu
開發的包的適當前綴。
,以配合包慣例可能發展(看起來像反轉Internet域名)。
你可以在http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
包查看更多詳情使用他們的反互聯網域名,以避免名稱衝突的命名方式。因此,從ecliplse一個CALSS可package com.eclipse.XYZClass
從Naming a package一個:
公司利用自己的反網絡域名,開始他們 包名,例如,com.example.mypackage名爲 包由example.com的程序員創建的mypackage。
爲了正確識別,一個軟件包應該以相同的名字進行反轉。所以,如果你在com.madbreaks.MyClass
有一個類,你將有文件夾結構也
com
|
+--madbreaks
|
+---MyClass
http://docs.oracle.com/javase/tutorial/java/package/index。html –
這裏有大量的重複答案... –
@SteveKuo他們都很好 - 現在就等待計時器。 – sdasdadas