4.11 练习

本章的示例代码位于仓库 ThinkJavaCode 的目录 ch04 中,有关如何下载这个仓库,请参阅前言中的“使用示例代码”一节。做以下的练习前,建议你先编译并运行本章的示例。

如果你还没有阅读 A.4 节,那么现在正是阅读的好时机。该节介绍了对接受用户输入并显示输出的程序进行测试的一种高效方式。

练习4-1

这个练习的意义在于阅读包含多个方法的程序的代码,并确保你明白其执行流程。

(1) 下面程序的输出是什么?务必准确地指出哪些地方有空格以及在哪些地方换行了。

提示:先口头描述 pingbaffle 被调用时会做什么。

(2) 绘制一个状态图,显示 ping 首次被调用时程序的状态。

(3) 如果在方法 ping 的最后调用 baffle(),结果将会如何?(我们将在下一章介绍其中的原因。)

  1. public static void zoop() {
  2. baffle();
  3. System.out.print("You wugga ");
  4. baffle();
  5. }
  6. public static void main(String[] args) {
  7. System.out.print("No, I ");
  8. zoop();
  9. System.out.print("I ");
  10. baffle();
  11. }
  12. public static void baffle() {
  13. System.out.print("wug");
  14. ping();
  15. }
  16. public static void ping() {
  17. System.out.println(".");
  18. }

练习4-2

这个练习旨在确保你明白如何编写和调用接受参数的方法。

(1) 编写方法 zool 的第一行,这个方法包含三个形参:一个 int 形参和两个 String 形参。

(2) 编写调用 zool 的代码,它传递的实参为值 11、你养的第一个宠物的名字以及你小时候居住的街道。

练习4-3

这个练习的目的在于将之前编写的代码封装到一个接受参数的方法中。做这个练习前,必须先完成练习 2-2。

(1) 编写一个名为 printAmerican 的方法,让其接受参数 day、date、month 和 year,并以美国格式显示。

(2) 对这个方法进行测试:在 main 中调用该方法并传递合适的实参。输出应类似于以下这样(只是日期可能不同):

  1. Saturday, July 22, 2015

(3) 确定方法 printAmerican 正确无误后,再编写一个以欧洲格式显示日期的方法,并将其命名为 printEuropean