使用原汁原味的Java语言 - 非Java原生程序员的语言流畅性 - 编程入门网
, z;
float cf[], gh[], jk[];
然而,这种风格也有一些缺陷。它将变量的声明与其使用分离开来,使代码 的易读性降低。此外,它会为多种不同的用途重用一个本地变量,有可能并非刻 意而为。但若变量持有代码的某个片段无法接受的残值,这可能会带来无法预料 的 bug。这一点与 C 语言中简短而难解的变量名结合在一起,将会后患无穷。 使用原汁原味的Java语言 - 非Java原生程序员的语言流畅性(4)时间:2011-06-10 IBM Elliotte Rusty Harol在 Java 语言(和较新版本的 C 语言)中,变量可在初次使用或接近初次使 用时声明。在编写 Java 代码时,请采取这种做法。这将使您的代码更加安全、 更不易出现 bug,也更易于阅读。 此外,Java 代码通常在声明变量时初始化各变量,而 C 程序员有时会写出 下面这样的代码:
尽管这在语法上是正确的,但 Java 程序员永远不会写出这样的代码。他们 会这样写这段代码:
这有助于避免因意外使用了未经初始化的变量而导致的 bug。惟一的常见例 外是一个变量的作用域需要同时包含 try 块和 catch 或 finally 块。这往往 是由于代码涉及需要在 finally 块中关闭的输入流和输出流而导致的,如清单 5 所示: 清单 5. 异常处理可能会使变量的作用域难以合理设定
但这几乎是惟一的异常。 这种风格的最后一种连锁反应就是 Java 程序员通常每行仅声明一个变量。 例如,他们初始化变量的方法如下:
通常不会写出下面这样的代码:
这条语句在语法上是正确的,但除非在一种特殊的例外情况下,专业 Java 程序员是不会这样做的,后文将介绍这种特殊情况。 老式的 C 程序员甚至可能编写一个四行的代码:
Java 风格将声明与初始化结合在一起,因而实际上要更简练一些,只需要三 行代码。 使用原汁原味的Java语言 - 非Java原生程序员的语言流畅性(5)时间:2011-06-10 IBM Elliotte Rusty Harol将变量置入循环 常见的一种特殊情况就是在循环外部声明变量。例如,考虑清单 6 中简单的 for 循环,其作用是计算斐波那契数列的前 20 项: 清单 6. C 程序员喜欢在循环外部声明变量
所有这四个变量都是在循环外声明的,尽管它们仅在循环内部使用,但作用 域不止于此。这容易导致 bug,变量可能会在其目标作用域之外被重用。对于使 用常用名的变量来说更是这样,例如 i 和 tmp。某次使用的值可能会残留下来 ,并以无法预计的方式干扰后续的代码。 第一项改进(C 语言的现代版本也支持这项改进)是将 i 循环变量的声明移 到循环之内,如清单 7 所示: 清单 7. 将循环变量移入循环
到这里还没有结束,经验丰富的 Java 程序员还会将 tmp 变量移入循环,如 清单 8 所示: 清单 8. 在循环内声明临时变量
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |