[core java]C4 Objects and Classes
阿新 • • 發佈:2018-12-09
final &static關鍵字
private final String name; 當constuctor呼叫時一定要被初始化
public static final double PI = 3.14..... // final type in class field
final物件和final引用
public class System{
public static final PrintStream out = ...
}
final型別的引用一旦初始化,不可以指向其他物件
ep:
out = new PrintStream(); // compile-time error
final型別的物件,不允許使用應用對物件進行修改,所以對final class String 的修改都在new 一個新物件的基礎上進行
Factory method
工廠方法這裡沒太看懂,應該也是私有化了constuctor,這裡和單例模式相同
單例模式通過static方法,返回同一個私有化物件
而工廠模式通過幾個不同型別的static方法,返回任意數量的,不同Style的物件?
還可以返回子類物件?這裡先記錄
函式引數
與C++的 pbv/pbr不同
java中只有pass by value 的形式
int doSum(vector& v)這種是典型的C++的pbr模式,對引數的修改在函式返回後仍然有效。
java中 int doSum(vector v)傳入的v的引用,類似於*v的方式,對variable v的修改函式返回後無效,但修改v指向的物件當然是有效的
field和local variable初始化區別
這一章後面就介紹了package、class path等內容
package類的作用域在protected和private之間