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