使用原汁原味的 Java 语言:非 Java 原生程序员的语言流畅性
2010-02-24 00:00:00 来源:WEB开发网清单 1 中使用的是什么语言?很显然是 C 语言 —请等一下,让我们来看看完整的程序,如清单 2 所示:
清单 2. Java 程序
class Test {
public static void main(String argv[]) {
float F, C;
float min_tmp, max_tmp, x;
min_tmp = 0;
max_tmp = 300;
x = 20;
F = min_tmp;
while (F <= max_tmp) {
C = 5 * (F-32) / 9;
printf("%f\t%f\n", F, C);
F = F + x;
}
}
private static void printf(String format, Object... args) {
System.out.printf(format, args);
}
}
无论您是否相信,清单 1 和清单 2 都是使用 Java 语言编写的。它们只是以 C 语言方言(老实说,清单 1 也确实可以是 C 代码)编写的 Java 代码。这里的几个习语标志着:编写这段代码的人是以 C 语言思考的,只是单纯地将其翻译为 Java 语言:
变量是 float 而非 double。
所有变量都是在方法上方声明的。
初始化紧接声明之后。
使用了 while 循环而非 for 循环。
使用了 printf 而非 println。
main() 方法的参数名为 argv。
数组括号紧接参数名之后,而非类型之后。
如果仅仅考虑所编写的这些代码是否能够编译或者是否会得到正确的结果,那么这些方言都不是错误的。如果分开来看,这几点都并不明显。但将它们结合在一起,就构成了一段非常古怪的代码,Java 程序员难以读懂,就像美国人难以听懂北英格兰人的方言一样。您使用的此类 C 语言方言越少,您的代码就会越清晰。请牢记这一点,下面我们将继续分析 C 语言程序员暴露自己身份的一些常见方式,并说明如何才能使他们的代码更符合 Java 程序员的眼光。
更多精彩
赞助商链接