2013-01-18 26 views
7

我的問題是爲什麼人們至少創建一個名爲edu的文件夾,然後是另一個名爲mit的文件夾(例如),然後是子文件夾中的所有代碼?爲什麼人們在Java中創建類似edu.mit.stk的目錄結構?

這是某種標識符嗎?

計算機是出於任何原因實際使用的結構 - 還是僅用於幫助讀者?

如果是這樣,它對讀者有什麼幫助?

+0

http://docs.oracle.com/javase/tutorial/java/package/index。html –

+0

這裏有大量的重複答案... –

+0

@SteveKuo他們都很好 - 現在就等待計時器。 – sdasdadas

回答

8

這樣做是爲了防止名稱衝突。默認規則是使用域名背面作爲包裝結構

因此,Google會將其所有代碼保留在com.google.*包中,而Microsoft會將其代碼保留在com.microsoft.*包中。然後,如果兩家公司都實施SearchEngine類,則不會有命名衝突。

教育機構做同樣的事情,所以你知道,在edu.mit.*子包的任何代碼是由一羣在MIT

4

Java約定是安排源目錄以匹配包層次結構。見例如Managing Source and Class Files

所以,如果你有一個類edu.mit.stk.Foo,那麼它將被定位爲edu/mit/stk/Foo.java

2

這是一個命名空間。它可以防止類/包名稱衝突。通常它是公司的域名反向(例如com.ibm.PackageName),但它的值是任意的,可以是任何東西。

0

按照慣例Java包名稱遵循相反的順序域命名約定。因此edu.mit是在mit.edu開發的包的適當前綴。

0

包查看更多詳情使用他們的反互聯網域名,以避免名稱衝突的命名方式。因此,從ecliplse一個CALSS可package com.eclipse.XYZClass

Naming a package一個:

公司利用自己的反網絡域名,開始他們 包名,例如,com.example.mypackage名爲 包由example.com的程序員創建的mypackage。

爲了正確識別,一個軟件包應該以相同的名字進行反轉。所以,如果你在com.madbreaks.MyClass有一個類,你將有文件夾結構也

com 
| 
+--madbreaks 
    | 
    +---MyClass 

看:Java tutorial on packages