しつこいかもしれんけど、カプセル化と情報隠蔽は違うってことを啓蒙するためにさらに書き足してみる。 昔、何かで読んだセキュアなクラスの書き方のひとつに final を使う方法が紹介されていた。インスタンス変数を final 宣言すれば、カプセル化してあるけど情報隠蔽はしていない状態になる。 カプセル化はしてるけど情報隠蔽していない。つまり、カプセル化と情報隠蔽は違うということだ。 public class Book { public final String title; public final String author; public final String isbn; public Book(String title, String author, int price) { this.title = title; this.author = author; this.price =