在 Java 中使用包的优势?

Advantages to using packages in Java?

作为一名学生,我开始深入研究 Java 的编程语言并理解面向对象编程的好处。但是,我注意到我从不使用包。

我的问题是在Java中使用包有什么好处?缺点是什么?我什么时候应该使用它们,什么时候不应该使用它们?

各种优点是(source) :

(1) 包可以包含隐藏的 类,它们被包使用但 在包装外不可见或不可接触。

(2) 类 包中可以有所有人可见的字段和方法 类 在包裹内,但不在包裹外。

(3) 不同的包可以有同名的类。例如, java.awt.Frame 和 photo.Frame.

您可以google了解更多。

Packages 解决了同名 类 的歧义。

使用它们在项目中提供适当的结构,以便项目中的每个人都能理解我必须在 com.deep.controller 包中编写的所有控制器以及我必须在 类 中编写的所有 DAO 相关内容com.deep.dao package.

What Is a Package?

A package is a namespace that organizes a set of related classes and interfaces. Conceptually you can think of packages as being similar to different folders on your computer. You might keep HTML pages in one folder, images in another, and scripts or applications in yet another. Because software written in the Java programming language can be composed of hundreds or thousands of individual classes, it makes sense to keep things organized by placing related classes and interfaces into packages.

Reference

一般我们使用包来解决命名冲突。在 java API 本身你会发现 classes 共享相同的名字。例如 Date class。 Java API 有 java.util.Datejava.sql.Date

编辑

在一个组织中,发展不是一个人的工作。有时 project/product 被分成几个小部分,由其他几个 isolated/outsourced 团队完成。在这种情况下,开发人员可能不知道 class/interface.

的存在

除此之外,假设您有 class Account,它已在包中定义,您需要为其添加更多功能。现在,因为它已经在使用中,所以不允许对其进行更改。在这里,您只有几个选择,其中创建一个新的 class 是一个简单的选择。

人们在 java 中使用包可能有多种原因;但就我个人而言,我想提三个最重要的。

  1. 代码重用是我在java中使用包的第一个也是最重要的原因。 继承概念允许您获取父对象的所有属性和行为。这意味着您可以根据现有 classes 创建新的 classes。当您从现有的 class 继承时,您可以重用父 class 的方法和字段。 简单地说,您可以通过将编写代码的属性继承到代码的其他部分来重用编写代码的功能。 当我在Java做一些项目的时候,有些方法(在C++中也被称为函数)几乎是一样的。 重写这些方法可能是浪费时间;最好的选择是重用代码的功能并仅更改参数或某些值。 因此,由于包是相关 classes 的集合,因此无论何时您想执行类似任务,重用某些代码的功能都会变得更加容易。您只需导入包并使用 class。

  2. 其次,使用包可以更容易地找到相关的 classes。 这与代码的组织方式有关。 例如,在大型 java 项目中,我们有数百个 classes,总是需要将类似类型的 classes 分组到一个包中,以便您可以组织和管理您的项目;这样可以更容易地定位相关的 classes,从而提高效率。

  3. 我在java中使用包的第三个也是最后一个原因是为了防止命名冲突。 我们可以在不同的包中定义两个同名的classes。 所以,为了避免名称冲突,我们可以使用 packages.