1. 程式人生 > >effective java第4章 類和介面

effective java第4章 類和介面

第13條 使類和成員的可訪問性最小化
第一規則:儘可能地使每個類或成員不被外界訪問
只有當同一個包內的另一個類真正需要訪問一個成員的時候,你才應該刪除private修飾符。
如果方法覆蓋了超類中的一個方法,子類中的訪問級別就不允許低於超類中的訪問級別。這樣可確保任何可使用超類例項的地方也可以使用子類的例項。
長度非零的陣列總是可變的,所以,類具有公有的靜態final陣列域,或者返回這種域的訪問方法,這幾乎總是錯誤的。修正方法如下:

private static final Thing[] PRIVATE_VALUES = {...};
public static final List<Thing> values() = Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES ));


第14條 在公有類中使用訪問方法而非公有域(過)
第15條 使可變性最小化
要使類成為不可變,要遵循下面幾條圓原則:
1,不要提供任何會修改物件狀態的方法
2,保證類不會被擴充套件
3,使所有的域都是final的
4,使所有的域都是私有的
5,確保對於任何可變元件的互斥訪問
第16條 複合優先於繼承
對於兩個類,A和B,只有當兩者之間確實存在“is_a”的關係時,類B才應該擴充套件類A