packages
在 Java 中是一种实现方式,以便不同的库可以重用类名而不会相互冲突。包就像语言提供的另一个范围规则。例如:
public class Example {
String exampleString = "example";
}
public class Another {
String exampleString = "This would never work with a global name space";
}
我们可以在同一个程序中拥有两个String
具有标识符的对象,exampleString
因为它们位于不同的scope
. 相似地,
package example;
public class Example { }
并在一个单独的文件中
package separateexample;
public class Example {}
我们可以有一个同名的类名,因为它是不同的作用域。我们仍然可以唯一地指定对象:
example.Example
或separaeteexample.Example
这些是这些类的完全限定类名。
有关更多信息,请查看java 教程
至于 Java 包的约定:如果你想写一个库并且有很多人使用它,你需要确保没有命名冲突。可以像上面那样使用包来避免它们 - 但为了确保不会发生冲突,例如包名称本身,您需要一个完全全球唯一的包名称,您可以确保在尝试使用时没有其他公司会使用使用您的产品。域名恰好是全球唯一的字符串,因此将您的公司域名用作包名是惯例,相反。
com.example.myapp.Example
只要您真正拥有 example.com,就永远不会发生冲突(并且没有人违反惯例)
因此,在 Java 中回答您的主要问题与.Netpackages
中的概念相同namespaces