明解Java入門編 第8章まとめ
クラス
メソッドとその処理対象となるデータを組み合わせた構造を表す。
new演算子によって生成されたクラス型の実体をインスタンスと呼び、インスタンスを生成することをインスタンス化という。
クラスのインスタンスと配列の本体をオブジェクトと総称する。
メンバアクセス演算子(ドット演算子/フィールドアクセス演算子)
x.y :xが参照するインスタンス内のメンバ(要素)yをアクセスする
インスタンス変数
インスタンス内のフィールド
フィールドの初期化
クラスインスタンス内のフィールドであるインスタンス変数は既定値で初期化される(配列の構成要素と同様である)
クラス型であるString型は一種の参照型で、参照型の既定値は空参照nullである。
データ隠蔽
データを外部から隠して不正なアクセスから守ること。
private宣言されたフィールドはクラスの外部に対して非公開になる。
情報を公開するかどうか決めるのはクラス側。
データ隠蔽を実現しプログラム品質を向上させるため、クラス内のフィールドは原則非公開にすべきである。
privateが指定されていないフィールドはデフォルトアクセス(パッケージ内での公開)となる。
メンバ
フィールドやメソッドの総称。
コンストラクタ(構築子)
不完全あるいは不正な初期化を防止し、インスタンスを適切に初期化する。
メソッドと異なり値を返却できない。
クラス型を宣言するときは必ずコンストラクタを用意してインスタンスを確実かつ適切に初期化する手段を提供すること。
クラスにコンストラクタを定義しなければ本体が空のデフォルトコンストラクタが自動的に定義される。
メソッド
staticのつかないメソッドは、概念的には個々のインスタンスごとに作られてそのインスタンスに属するのでインスタンスメソッドという。
static付きのメソッドはクラスメソッドという。
カプセル化
フィールドを非公開として外部から保護した上で、メソッドとフィールドとをうまく関係させること。
this参照
クラスのフィールドと同名の仮引数や局所変数を持つコンストラクタおよびメソッドの本体ではフィールドの名前が隠される。
コンストラクタおよびメソッドは自分を起動したインスタンスへの参照をthisとしてもっている。
thisを使うメリット:
仮引数の名前を何にするのかを悩む必要から解放される。
どのフィールドに値を設定するための引数であるのかがわかりやすい。
この章はまあまあわかりやすい。
7章が無理。