Java教程是为JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
请参阅Java语言变化,了解Java SE 9及其后续版本中更新的语言功能的摘要。
请参阅JDK发行说明,了解所有JDK版本的新功能、增强功能和已删除或已弃用选项的信息。
问题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:是的,你需要添加导入语句。 Client.java
和 Server.java
需要导入 Utilities
类,可以通过以下两种方式之一实现:
import mygame.shared.*; --或-- import mygame.shared.Utilities;
此外,Server.java
需要导入 Client
类:
import mygame.client.Client;
练习1:下载三个源文件:
a. 使用刚刚下载的源文件来实现你在问题1中提出的更改。
b. 编译修改后的源文件。(提示:如果你是从命令行调用编译器(而不是使用构建器),则从包含刚刚创建的mygame
目录的目录中调用编译器。)答案1:使用这个解决方案的zip文件:mygame.zip
你可能需要更改你提出的导入代码以反映我们的实现。