java同一个包是什么意思_关于Java:”包”和”模块”有什么区别?

我使用Java,我们只有包。我知道还有其他的编程语言也包括模块。

有什么区别?

谢谢

类似于"函数"和"方法"的区别

现在Java 9有模块!

在虚空中很难比较语义。(你说的其他语言是什么意思?)一个"模块"可能类似于Java类,或者Java包,或者完全依赖于其他语言。通常,由于"模块"往往来自过程语言,我倾向于说Java类,但我认为在这一点上,这一行非常模糊,您可以很有说服力地对包进行辩论。

Ruby想到了,我也听说Java7将包括"模块"…但一般来说,有什么区别(如果有的话)。例如,在程序世界中,什么是模块?

@Oscarryz:这是你的"模块是什么"问题——它实际上取决于你所说的程序语言。总的来说,它们是符号范围和封装机制,当然Java类和包也是一样的。

InstanceOfom的注释将其钉住——不同的语言对包和模块有不同的定义。因此,这个问题没有语言不可知论的答案。

我将尝试从我所知道的一些语言的角度来回答:

Java:它有一个packages的概念,它基本上只是一种将Java类、接口等组织到命名空间中的机制。它们需要层次结构。package没有头等舱地位。还值得注意的是,对于Java 7提出的EDCOX1的2度有时也被称为EDCOX1×3×S。

Modula:EDOCX1,3,s,在概念上与Java的EDCOX1,0,s相同,不需要层次结构。

E.Ocxx1,6,在概念上与Java的EDCOX1,0,s相同,不需要层次结构。

C++:EDCOX1×6,顾名思义,这些只是命名空间。不需要层次结构。

Haskell:EDCOX1,3,s,在概念上与Java的EDCOX1,0,s相同。

斯卡拉:EDCX1〔0〕s在斯卡拉与爪哇的EDCX1〔0〕相同,只是不需要层次结构。还有一些限制,比如每个文件一个公共类,也被放宽了。scala中的objects也被称为模块,它们也享有一流的地位。

f:f中的namespaces与c namespaces相同。除了namespaces之外,f还具有modules,它们在clr级别用静态方法实现为.NET类。他们不是一流的实体。

专家们,如果有任何错误,请纠正我。

似乎,正如其他答案所述,模块的概念因语言而异,有些甚至没有模块(但相应的对应模块)。

然而,现在看来,模块更像是一个概念,指的是一组可以独立共享的源代码文件。按照这个定义,JavaJAR文件不是模块,因为它们包含字节码编译文件(.class文件)。遵照这个定义的模块系统将在Java 9中引入(见本文),并且存在于具有模块或包管理器的其他语言中,通常直接命名模块包(Go Lang/Go工具、Python/PIP、PHP/作曲家……),其中包通常是打包模块。

认为模块是唯一源代码的错觉来自于可解释语言(Ruby、PHP、Python、JS等),在这些语言中它们没有其他可供发布的语言。以及机器代码编译语言(go、c等),这些语言必须在每个平台上重新编译。Java工件的源代码分布在JAR中。在项目拼图下完成的工作与你的定义无关。

Java9发布时引入了Java平台模块系统或JPMS。从那时起,Java既有EDCOX1,也有EDCX1,18,EDCX1,17。那么他们之间有什么区别呢?

什么是包裹?

A package is a namespace that organizes a set of related classes and

interfaces.

什么是模块?

A module is a collection of related Java packages and associated resources with a descriptor file, which contains information about which packages/resources are exposed by this module, which packages are used by current module and some other information.

我们可以把Java模块的东西作为一个更高层次的聚合。模块允许您将几个包组织成一个单独的逻辑单元,并将它们作为一个整体系统分发。此外,JPMS还提供了一种控制哪些包对用户可见的方法。

与模块相比,包更类似于C++命名空间。模块比包更类似于封闭类。

关于Java 9的过时

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值