1. 程式人生 > >[core java]C4 Objects and Classes

[core java]C4 Objects and Classes

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之間