Java中的包和目录之间的区别

Java中的包和目录之间的区别,第1张

Java中的包和目录之间的区别

还有包和目录之间的关系,但它是一个 必须保持。如果您的类位于“
mypackage1.mypackage2”中,则意味着该

java
命令将期望在名为“ mypackage1
mypackage2”的目录结构(假定使用“ backwards” Windows表示法)中找到该类,并进一步嵌入该目录结构在名称中的目录中(我们将其称为“
myjava”)
classpath
(或直接在“当前目录”中)。


因此,您的Java类(内部表示

package mypackage1.mypackage2;
)位于“ Users myName myjava
mypackage1 mypackage2 ”中,然后将“ Users myName
myjava”放在类路径中,否则您将拥有当前的目录设置为“ Users myName myjava”。

如果混合使用,则根本找不到该类,或者会收到类似模糊不清的“ NoClassDefFoundError”之类的错误。

至于 为什么 要使用软件包(和目录),其原因与“名称空间”和“关注点分离”(查找内容)有关。如果没有包,并且所有“ java.lang”,“java.io”,“sun.misc”等类都在一起,那么Java将很难保持直率。首先,必须使用名称“前缀”来使它们保持直线并避免名称冲突。并且许多逻辑分组将丢失。

对于您自己的项目,您不需要为自己编写的简单小程序使用包,但是如果您编写了一些东西,可能会赠予他人,则可以使用“
myname.myproject”之类的包(用您的名字和项目),因此您授予它的人可以将其与其他人组合而不会造成名称冲突。

在大型应用程序中,您会发现使用进一步的隔离级别可以帮助您保持功能的直接性,从而使您知道所有内容在哪里。这也使您不愿跨越不同功能区域之间的“边界”,因此您不会被无关的逻辑所困扰。

Eclipse(如果使用的话)有点混淆了问题,因为它“想要”提供目录和程序包名称,有时(但不总是)使它们保持同步。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5489732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存