1)
因为 Java 不像 C++ 可以自由地作 operator overloading
使用 a.add(b) 比较可行, 也可搭配
复制程式
public class Rational {
public Rational add(Rational r) {
...
return this;
}
}
如此以来便可以 a.add(b).add(c).add(d);
不过 a 的值亦会改变
如果要不可变, 可采以下方法
不过不可被继承
复制程式
public final class Rational {
public Rational add(Rational r) {
...
return new Rational(...);
}
}
2)
Java 除了 primitive type 外都是 Object
primitive type 如 int, boolean, double, etc..
wrapper object 有 Integer, Boolean, Double, etc..
primitive type 存放在 stack, 包括 object reference
object 实际上存放在 heap, 透过 object reference 操作
也有人认为这实际上还算是指标, 不过建议还是视为物件来处理
3)
linkedlist 请参阅 API doc java.util.LinkedList