Effective Java 第4章 クラスとインタフェース (13, 14)

クラスとかその辺の章。

項目13

クラスとメンバはできるだけprivateにする、という項目?
カプセル化とイミュータブルを忘れずに。……という風にしか読めなかった。

項目14

publicのフィールドではなくアクセサメソッドを作りましょう、という項目。

public class Aaa {
  public int a;
  public int b;
}

これだと、オーバーライドできないし、不変式(おかしな値を入れること??)を強制できないとかなんとか。
privateでフィールドを宣言して、アクセサメソッドを作る意味ってなんだろうと思ってたけど、こういうことだった訳か。
あとからオーバーライドできるようにアクセサメソッドを追加しても、サブクラスが既に作られてたりしたら、そっちも変えないといけないとか、そういうのもあるし。


この章、1つ1つの項目が割と大きいから読むの大変。読み切れるんだろうか。