快速业务通道

使用原汁原味的Java语言 - 非Java原生程序员的语言流畅性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
量或文字在 Java 代码中极为罕见,更常 用的是 double。使用 float 的惟一时机就是操纵精度有限的大型多维浮点数字 数组,此时存储空间较为重要。否则使用 double 即可。

比 float 更不常见的是 short。我在 Java 代码中几乎没有见过 short 变 量。只有惟一的一次(我要警告您,这是极其罕见的情况),读入的外部定义数 据格式碰巧包含 16 位有符号整型类型。在这种情况下,大多数程序员都会将其 作为 int 读入。

确定私有属性的范围

您是否见过清单 22 中这种 equals() 方法?

清单 12. C++ 程序员编写的 equals()方法

public class Foo {   private double x;   public double getX() {    return this.x;   }   public boolean equals(Object o) {    if (o instanceof Foo) {     Foo f = (Foo) o;     return this.x == f.getX();    }    return false;   }   }

这个方法在技术上是正确的,但我确信,这个类是由一名保守的 C++ 程序员 编写的。他在一个方法中使用了私有字段 x 和公共 getter 方法 getX(),实际 上是在一行代码之中,这泄漏了他的身份。在 C++ 中,这种做法是必要的,因 为私有属性的范围是对象而不是类。也就是说,在 C++ 中,同一个类的对象无 法看到彼此的私有成员变量。他们必须使用 accessor 方法。在 Java 语言中, 私有属性的范围是类而非对象。类型同为 Foo 的两个对象可直接访问对方的私 有字段。

某些微妙 — 往往又不相关 — 的考虑思路认为,您应该在 Java 代码中首 选直接字段访问而非 getter 访问,或者反之。字段访问相对速度较快,但在少 数时候,getter 访问可能会提供与直接字段访问略有不同的值,特别是在涉及 子类的时候。在 Java 语言中,没有任何理由在同一行代码中为同一个类的同一 个字段同时使用直接字段访问和 getter 访问。

使用原汁原味的Java语言 - 非Java原生程序员的语言流畅性(8)

时间:2011-06-10 IBM Elliotte Rusty Harol

标点和语法方言

下面是一些与 C 语言对应部分不同的 Java 方言,在某些情况下,这样的差 异是为了利用某些 Java 语言特性。

将数组括号紧接于类型之后

Java 语言声明数组的方式与 C 语言中大致相同:

int k[];   double temperature[];   String names[];

但 Java 语言也提供了一种替代性的语法,将数组复括号紧接于类型之后, 而不是变量名之后:

int[] k;   double[] temperatures;   String[] names;

大多数 Java 程序员都采用了第二种风格。上面的代码表示 k 的类型是 int 数组,temperatures 的类型是 double 数组,names 的类型是 String 数组。

同样,与其他本地变量一样,Java 程序员习惯在声明时初始化这些变量:

int[] k = new int[10]; double[] temperatures = new double[75]; String[] names = new String[32];

使用 s == null 而不是 null == s

谨慎的 C 程序员已经学会了将文字置于比较运算符的左侧。例如:

if (7 == x) doSomething();

目标在于避免意外地使用单等号赋值运算符而非双等号比较运算符:

if (7 = x) doSomething();

若将文字置于左侧,这样的错误就会成为编译时错误。这项技巧是 C 语言中 一项著名的编程实践。它能帮助避免出现真正的 bug,因为若将文字置于右端, 将始终返回 true。

然而,不同于 C 语言,Java 语言具有独立的 int 和 boolean 类型,赋值 运算符返回 int,而比较运算符返回 boolean。因而,if (x = 7) 已经成为编 译时错误,就没有必要为比较语句使用不自然的形式 if (7 == x),流畅的 Java 程序员不会这样做。

使用原汁原味的Java语言 - 非Java原生程序员的语言流畅性(9)

时间:2011-06-10 I

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号