On Java:中文版·基础卷
上QQ阅读APP看书,第一时间看更新

3.7.2 使用其他组件

当你在程序中使用预定义的类时,编译器必须找到这个类。最简单的情况是,这个类就存在于当前被调用的源代码文件中。如此一来,你只要使用这个类就可以了,哪怕这个类稍后才会在文件中定义[Java消除了所谓的“前向引用”(forward referencing)问题]。

那么,如果一个类定义在其他文件里呢?可能你会认为万能的编译器会自动找到这个类,然而问题并非如此简单。比如你想使用一个类,却发现同一个类名存在多个不同的定义(假设这些定义的用途各不相同)。更有甚者,假设你正在编写一个程序,当你向库中添加了一个新的类时,可能会发现已经和库中一个已有的类名冲突了。

为了解决这个问题,我们需要消除所有类似这样的潜在歧义,解决方案则是利用import关键字告知Java编译器你想要使用哪个类。import语句的作用是通知编译器导入一个指定位置的包,即放置各种类的库(其他编程语言的库可以由函数、数据和类组成,但是Java的一切活动都发生在类中)。

你经常会用到编译器自带的各种Java标准库组件。当你使用这些组件时,无须担心那些冗长和反转的域名,使用下面的方式即可将其导入:

这一行代码会告诉编译器,你要使用位于util库的ArrayList类。

此外,util库也包括了一些其他的类,可能你需要使用其中的几个类,却不想一个个地导入它们。这种情况下,可以使用通配符“*”来轻松实现这一点:

由于本书的代码示例规模都很小,为了方便起见,经常会使用“*”导入类。不过需要提醒的是,许多编程风格指南会明确指出,每一个用到的类都应该被单独导入。