使用原汁原味的 Java 语言:非 Java 原生程序员的语言流畅性
2010-02-24 00:00:00 来源:WEB开发网这个方法在技术上是正确的,但我确信,这个类是由一名保守的 C++ 程序员编写的。他在一个方法中使用了私有字段 x 和公共 getter 方法 getX(),实际上是在一行代码之中,这泄漏了他的身份。在 C++ 中,这种做法是必要的,因为私有属性的范围是对象而不是类。也就是说,在 C++ 中,同一个类的对象无法看到彼此的私有成员变量。他们必须使用 accessor 方法。在 Java 语言中,私有属性的范围是类而非对象。类型同为 Foo 的两个对象可直接访问对方的私有字段。
某些微妙 — 往往又不相关 — 的考虑思路认为,您应该在 Java 代码中首选直接字段访问而非 getter 访问,或者反之。字段访问相对速度较快,但在少数时候,getter 访问可能会提供与直接字段访问略有不同的值,特别是在涉及子类的时候。在 Java 语言中,没有任何理由在同一行代码中为同一个类的同一个字段同时使用直接字段访问和 getter 访问。
标点和语法方言
下面是一些与 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 程序员习惯在声明时初始化这些变量:
更多精彩
赞助商链接