# 问题和练习：创建和使用包

> 原文： [https://docs.oracle.com/javase/tutorial/java/package/QandE/packages-questions.html](https://docs.oracle.com/javase/tutorial/java/package/QandE/packages-questions.html)

## 问题

假设你已经写了一些课程。迟来，您决定将它们分成三个包，如下表所示。此外，假设类当前在默认包中（它们没有`package`语句）。

Destination Packages
| 包裹名字 | 类名称 |
| --- | --- |
| `mygame.server` | `Server` |
| `mygame.shared` | `Utilities` |
| `mygame.client` | `Client` |

1.  您需要在每个源文件中添加哪一行代码才能将每个类放入正确的包中？
2.  要遵循目录结构，您需要在开发目录中创建一些子目录，并将源文件放在正确的子目录中。您必须创建哪些子目录？每个源文件进入哪个子目录？
3.  你认为你需要对源文件进行任何其他更改才能使它们正确编译吗？如果是这样，什么？

## 演习

下载此处列出的源文件。

*   [`Client`](question/Client.java)
*   [`Server`](question/Server.java)
*   [`Utilities`](question/Utilities.java)

1.  使用刚刚下载的源文件实现您在问题 1 到 3 中提出的更改。
2.  编译修改后的源文件。 （_ 提示：_ 如果从命令行调用编译器（而不是使用构建器），请从包含刚刚创建的`mygame`目录的目录中调用编译器。）

[Check your answers.](packages-answers.html)