购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5.2 包

老师!我在学习Java的包概念时遇到了一些问题。能帮我解释一下Java中的包是什么吗?

当然可以,小东!在Java中,包(Package)是一种用于组织和管理代码的概念。它可以包含一组相关的类型,如类、接口、枚举和注解。通过使用包,我们可以为这些类型提供访问保护和命名空间管理。

我明白了。那么包的作用是什么呢?

包的作用有几个方面。首先,它提供了一种命名空间管理机制。不同的包可以拥有相同名称的类,但由于它们位于不同的包中,它们的完全限定名(包括包名和类名)不会发生冲突。这使得我们能够更好地组织和管理代码,避免命名冲突。

其次,包还提供了访问保护机制。在Java中,类可以有不同的访问修饰符,如public、protected、private或默认(即没有显式修饰符)。通过将类放置在特定的包中,并使用适当的访问修饰符,我们可以控制其他类对于这些类的访问权限。

最后,包还有助于代码的可维护性和可读性。通过将相关的类型组织在同一个包中,我们可以更容易地理解和查找特定类型的代码。这种逻辑上的组织有助于降低代码的混乱程度,并使代码更易于阅读和维护。

1.声明包

Java中使用package语句声明包,package语句应该放在源文件除了注释以外的第一行,在每个源文件中只能有一个包定义语句,并且package语句适用于所有Java类型(类、接口、枚举和注解)的文件。声明包语法格式如下。

pkg1~pkg3都是组成包名的一部分,之间用点(.)连接。首先,它们的命名应该是合法的标识符;其次应该遵守Java包命名规范,即全部采用小写字母。例如:com.abc是自定义的包名。

声明包的示例代码如下:

从上述代码可见Student.java源文件中声明了com.abc包。

事实上,在HelloProj项目中包含了多个相同名字的类(如:Xyz类),它们应该在不同的包中,如图2-2所示。

图2-2 不同包中的Xyz类

2.引入包

为了能够使用一个包中的Java类型(类、接口、枚举和注解),需要在Java程序中明确引入该包。使用import语句实现包引入。import语句应位于package语句之后,所有类的定义之前。可以有0~ n 条import语句。其语法格式为:

“包名.Java类型名”表示只引入具体Java类型,“包名.*”表示引入这个包下所有的Java类型(*为通配符)。但从编程规范的角度,提倡明确引入具体Java类型,即采用“包名.Java类型名”的形式,这样可以提高程序的可读性。

示例代码如下:

引入包的代码应该放在package语句之后,见代码第①~③处,注意代码第①处使用了通配符(*)引入com.abc包中的所有类型,但这种做法一般不推荐,因为它的可读性不好,而是推荐采用代码第②处的方式引入具体的类型。

另外,需要注意的是,引入的类名也可能会有冲突!例如:Date类在java.util和java.sql包中都有,所以在使用时还可以指定类的全名,见代码第④处的java.sql.Date()。

当前源文件与要使用的Java类型(类、接口、枚举和注解)在同一个包中时,可以不引入包。另外,java.lang包中包含了Java语言的核心类,它不需要显式地使用import语句引入,它是由解释器自动引入的。 581tJX0OfZodxCmhOTqwUsPAX8J6nn/1UYdbFig2WsKtRSGQTbmlOKov5LD3JIFS

点击中间区域
呼出菜单
上一章
目录
下一章
×