如何使用Java包?

如何使用Java包?,java,Java,为什么我们在Java中使用包? 如何使用它们?软件包主要只是组织代码的一种方式。JDK中有数千个类,而大型应用程序中有数千个以上的类。为什么您不想将它们组织成某种层次结构,以便轻松找到您感兴趣的类 包也参与Java中的访问控制(有趣的是,不是在.NET中),但我想说的主要目的是帮助人们有意义地组织代码 这还意味着,有时您可能希望或需要在多个包中使用相同的类名,其中包名有效地提供了上下文。现在,如果您在单个应用程序的单个代码库中工作,这通常是要避免的-但是如果您有一个大型代码库,其中许多不同的应用

为什么我们在Java中使用包? 如何使用它们?

软件包主要只是组织代码的一种方式。JDK中有数千个类,而大型应用程序中有数千个以上的类。为什么您不想将它们组织成某种层次结构,以便轻松找到您感兴趣的类

包也参与Java中的访问控制(有趣的是,不是在.NET中),但我想说的主要目的是帮助人们有意义地组织代码

这还意味着,有时您可能希望或需要在多个包中使用相同的类名,其中包名有效地提供了上下文。现在,如果您在单个应用程序的单个代码库中工作,这通常是要避免的-但是如果您有一个大型代码库,其中许多不同的应用程序使用它的许多不同部分,那么这可能比尝试为每个类使用唯一的名称要好。(一个典型的例子是在用户界面代码中——只要查看.NET库,在三个单独的名称空间中有一个“Button”类,用于三个单独的UI框架。)

包主要只是一种组织代码的方法。JDK中有数千个类,而大型应用程序中有数千个以上的类。为什么您不想将它们组织成某种层次结构,以便轻松找到您感兴趣的类

包也参与Java中的访问控制(有趣的是,不是在.NET中),但我想说的主要目的是帮助人们有意义地组织代码


这还意味着,有时您可能希望或需要在多个包中使用相同的类名,其中包名有效地提供了上下文。现在,如果您在单个应用程序的单个代码库中工作,这通常是要避免的-但是如果您有一个大型代码库,其中许多不同的应用程序使用它的许多不同部分,那么这可能比尝试为每个类使用唯一的名称要好。(一个典型的例子是在用户界面代码中-只要查看.NET库,在三个单独的名称空间中有一个“Button”类,用于三个单独的UI框架。)

包是一种对类似类进行分组的方法。您不想将所有类放在一个包中,是吗?

包是对类似类进行分组的一种方法。您不想将所有类放在一个包中,是吗?

将java包视为PC上的文件夹。您喜欢将不同类型的文件保存在不同的文件夹中,就像您在java的不同包中保存不同类型的类和接口一样

通过这样做,我们获得了一些优势,下面列出了其中一些优势-

  • 对类似文件进行分组:将视频保存在娱乐\视频等文件夹中,将文档保存在个人\文档等文件夹中。类似的类和接口在java中保存在相同的包中
  • 安全性:正如您可以隐藏或设置密码来保护文件夹中文件的内容一样,您也可以通过将类成员声明为受保护或不使用任何访问说明符来实现相同的功能
  • 可读性和可访问性:假设您需要查找一种类或接口,那么您可以通过名称查找该类包并继续搜索。因此,您可以缩小搜索范围,然后以一种简单的方式查找和访问它
  • 仅使用所需文件假设您只是执行一个简单的hello world程序,并且不需要导入太多的类,在这种情况下,java库中可用的所有类都不会被导入。若并没有包,那个么java库中的每个类都将被导入
我们使用java关键字
package
和包结构在包中定义类/接口。它必须是类/接口的第一条语句。如果您没有定义包名,那么该文件将被放置在默认包中,即您的源代码文件夹中

package com.my.package.MyClass

java中使用的包前面有一个关键字
import
。使用点(.)运算符访问包的级别,就像在PC上的case文件夹中使用“/”或“\”一样

导入名为com\my\package的包中可用的类MyClass:

import com.my.package.MyClass

导入名为com\my\package的包中的所有可用类:

导入com.my.package.*

仅导入类的静态字段,以便您可以直接访问它,而无需使用类名:

import static com.my.package.MyClass.myStaticField


把java中的包想象成电脑上的文件夹。你喜欢在不同的文件夹中保存不同类型的文件,就像你在java中的不同包中保存不同类型的类和接口一样

通过这样做,我们获得了一些优势,下面列出了其中一些优势-

  • 对类似文件进行分组:将视频保存在娱乐\视频等文件夹中,将文档保存在个人\文档等文件夹中。类似的类和接口在java中保存在相同的包中
  • 安全性:正如您可以隐藏或设置密码来保护文件夹中文件的内容一样,您也可以通过将类成员声明为受保护或不使用任何访问说明符来实现相同的功能
  • 可读性和可访问性:假设您需要查找一种类或接口,那么您可以通过名称查找该类包并继续搜索。因此,您可以缩小搜索范围,然后以一种简单的方式查找和访问它
  • 仅使用所需文件假设您只是执行一个简单的hello world程序,而不需要那么多