4.4 执行流程
将 4.3 节中的代码组合起来可以得到类似于下面这样的完整程序:
public class NewLine {public static void newLine() {System.out.println();}public static void threeLine() {newLine();newLine();newLine();}public static void main(String[] args) {System.out.println("First line.");threeLine();System.out.println("Second line.");}}
阅读包含多个方法的类定义时,你可能很想按照从头到尾的顺序阅读。但这样做很可能让你感到迷惑,因为程序的执行流程(flow of excution)并不是这样的。
不管 main 方法位于源代码文件的什么地方,程序总是从这个方法的第一条语句开始执行。语句按顺序以每次一条的方式执行,直到遇到方法调用。我们可将方法调用视为改道:不是直接执行下一条语句,而是跳转到被调用的方法的第一行,执行完这个方法的全部语句后,再回到离开的地方继续执行。
这好像很简单,但别忘了,一个方法可以调用另一个方法。执行 main 方法时,中途离开去执行 threeLine 的语句;执行 threeLine 时,又中途离开去执行 newLine;而 newLine 调用 println,导致再次改道。
好在 Java 擅于跟踪当前的运行方法,因此,println 执行完毕后,它会回到离开 newLine 的地方;newLine 执行完毕后,回到离开 threeLine 的地方;而 threeLine 执行完毕后,又回到离开 main 的地方。
总之,阅读程序时,不要按照从头到尾的顺序阅读,而应按执行流程阅读。
