packages
Java中的一種方式是讓不同的庫可以重用類名而不會相互衝突。包就像語言提供的另一個範圍規則。例如:
public class Example {
String exampleString = "example";
}
public class Another {
String exampleString = "This would never work with a global name space";
}
我們能夠在同一個程序與exampleString
標識符的兩個String
對象,因爲它們是在不同的scope
。同樣,
package example;
public class Example { }
,並在一個單獨的文件
package separateexample;
public class Example {}
我們可以有一個類名相同的名稱,因爲它是一個不同的範圍。我們仍然可以唯一地指定對象:
example.Example
或separaeteexample.Example
這些是這些類的全限定類名稱。
欲瞭解更多信息,請查閱the java tutorial
對於約定Java包:如果你想寫一個庫,有很多人使用它,你需要確保沒有命名衝突。軟件包可以像上面一樣使用以避免它們 - 但爲了確保沒有任何衝突,例如軟件包名稱本身,您需要一個完全全球唯一的軟件包名稱,以確保其他公司在嘗試使用時不會使用其他公司的名稱使用你的產品。域名恰好是全球唯一的字符串,所以將公司域名作爲包名稱反轉是慣例。
com.example.myapp.Example
不可能發生衝突,只要你真正擁有example.com(沒有人打破了慣例)
因此,要回答你的主要問題packages
在Java中是相同的概念namespaces
在.net
帶有主函數的類的名稱不起作用。這聽起來像你的組織的慣例。 – Bill