Java中的包和C ++中的库之间是否存在差异?

时间:2013-06-06 12:30:33

标签: java

我想知道为什么在Java中我们有包而不是库。在这个问题上,我与朋友们进行了很多讨论。他们告诉我们可以将包视为库。由于C ++已经有了库的概念,那么为什么需要创建一个名为Packages的新名称。

P.S。:如果他调用包库,是否真的值得纠正。

5 个答案:

答案 0 :(得分:7)

是用于组织类的Java构造。他们提供:

  • 用于放置类
  • 的命名空间
  • 访问级别(包访问),允许 中的类该包共享字段

就是这样;实施者对这个组织特征的处理取决于他们。

是另一个组织概念。但是,库的目的是为外部世界提供一个定义良好的接口,并根据需要执行内部实现。

两者都是组织思想,库通常由软件包组成(如果用Java实现)。但是,他们有不同的意图,所以给他们不同的名字是明智的。通常,一个小型库将适合单个包,因此使用一个来表示另一个可能并不令人困惑。但是,它们相同。

答案 1 :(得分:5)

包不是真正的库。如果您将jar文件视为单独的库,则更为接近。包很有用,因为它们为项目提供了逻辑结构,就像目录层次结构一样。 Java还维护对象中的运行时信息,并且包路径是识别特定类的唯一方法,因为您可以拥有多个具有相同名称的类。

在C / C ++中,您对运行时信息的支持有限,因此情况不同。

答案 2 :(得分:5)

包是名称空间。有无数的" Util"类,但您可以唯一标识它们,因为它们是完全限定名称,即包+类名。

库是一组同意提供特性/功能的类。

答案 3 :(得分:2)

包和库是不同的概念。

C / C ++中的库是相关函数/过程的集合。该库包含字符串操作函数。该库包含处理正则表达式等的函数......

Java中的包旨在支持面向对象的设计原则(C在OO出现之前出现)。 Java中的包是相关类的逻辑集合,应该能够以与推理单个类/模块相同的方式一起推理。

答案 4 :(得分:2)

在Java世界中,逻辑上是一组通常在一些公分母包名下的类,例如org.apache.commons.io打包并分发为JAR file。有时库可以由几个JAR组成,然后它经常被称为例如JAR。 框架工具包平台 ......

当然common library definition也适用于此。

Java package名称空间的形式 - 文件夹组织和完全限定名称的一部分。是的,这个类确实是由包+简单类名标识的,除了默认包这是未命名的包。包装范围,导入等背后也有逻辑。但这个问题太多了。

以下是Java库,工件或您命名的任何内容的最佳存储库:Maven repository