Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
问题1:假设你已经编写了一些类。稍后,你决定将它们拆分为三个包,如下表所示。此外,假设类当前在默认包中(它们没有 package
语句)。
包名 | 类名 |
---|---|
mygame.server
|
Server
|
mygame.shared
|
Utilities
|
mygame.client
|
Client
|
a. 你需要在每个源文件中添加哪些代码才能将每个类放入正确的包中?
答案1a:每个文件的第一行必须指定包:
Client.java
中添加:package mygame.client;
Server.java
中添加:package mygame.server;
:Utilities.java
中添加:package mygame.shared;
b. 要遵循目录结构,你需要在开发目录中创建一些子目录,并将源文件放在正确的子目录中。你必须创建哪些子目录?每个源文件进入哪个子目录?
答案1b:在 mygame
目录中,你需要创建三个子目录:client
,server
和 shared
。
mygame/client/
中:Client.java
mygame/server/
中:Server.java
mygame/shared/
中:Utilities.java
c. 你认为你需要对源文件进行任何其他更改才能使它们正确编译吗?如果需要,则需要做什么?
答案1c:是的,你需要添加 import 语句。Client.java
和 Server.java
需要导入 Utilities
类,他们可以通过以下两种方式之一进行操作:
import mygame.shared.*; --or-- import mygame.shared.Utilities;
此外,Server.java
需要导入 Client
类:
import mygame.client.Client;
练习1:下载三个源文件:
a. 使用刚刚下载的源文件实现你在问题 1 中提出的更改。
b. 编译修改后的源文件。(Hint: 如果从命令行调用编译器(而不是使用构建器),请从包含 mygame
目录的目录中调用编译器答案)1:下载包含答案的 zip 文件:mygame.zip
你可能需要更改建议的导入代码以反映我们的实现。