10.10 Java类库的源代码
本书一直在使用 Java 类库中的类,包括 System、String、Scanner、Math、Random 等。你可能还没有意识到这些类也是用 Java 编写的。事实上,可通过查看源代码来了解它们的工作原理。
Java 类库包含数千个文件,其中的很多文件都包含数千行代码。完全阅读并理解这些代码超出了个人的能力范围,因此千万不要感到害怕!
因为 Java 类库很大,所以其源代码存储在一个名为 src.zip 的文件中。请花点时间在你的计算机中找到这个文件。
在 Linux 系统中,它很可能位于目录 /usr/lib/jvm/openjdk-8/ 中(可能需要安装
openjdk-8-source包)。在 OS X 系统中,它很可能位于目录 /Library/Java/JavaVirtualMachines/jdk…/Contents/Home/ 中。
在 Windows 系统中,它很可能位于目录 C:\Program Files\Java\jdk…\ 中。
将这个文件打开或解压后,你将看到与各个 Java 包对应的文件夹。例如,如果依次打开文件夹 java 和 awt,你将看到 Point.java 和 Rectangle.java,以及 java.awt 包中的其他类。
请在编辑器中打开 Point.java,并粗略地浏览一下这个文件。它使用了我们还未讨论的语言功能,因此可能很难理解,但通过浏览这个库,你可以感受一下专业的 Java 软件是什么样的。
注意,Point.java 包含详尽的文档。每个方法都有详尽的注释,包括 @param、@return 和其他 Javadoc 标签。Javadoc 通过阅读这些注释来生成 HTML 格式的文档。要想知道最终生成的 HTML 文件是什么样的,请阅读 Point 类的文档,而要找到这些文档,可在网上搜索 Java Point。
现在来看看 Rectangle 的方法 grow 和 translate。这些方法的功能比你所知道的要多,但这并不妨碍你在程序中使用它们。
这里对本章的内容作个总结。对象封装了数据并提供了可直接访问和修改这些数据的方法;面向对象编程能够将繁杂的细节隐藏起来,从而让你更轻松地使用和理解他人编写的代码。
