明解Java入門編 第9章まとめ
ゲッタとセッタとアクセッサー
getter:フィールドの値を取得するメソッド
setter:フィールドに値を設定するメソッド
accessor:両者の総称
クラス型変数の代入
クラス型の変数を同一型の変数によって初期化するか、同一型の変数を代入すると、参照先がコピーされる。全フィールドの値がコピーされるわけではない。
クラス型変数の比較
クラス型変数に適用された等価演算子==と!=は、参照先が同一であるかないかを判定する。フィールドの値が等しいかどうかの判定を行うわけではない。
クラス型インスタンスの配列
クラス型のインスタンスの配列を利用するためには、クラス型変数の配列を生成した後に、個々の要素のインスタンスを生成しなければならない。
publicクラス
publicの有無によってクラスのアクセス性が変わる。
public無し:そのクラスは同一パッケージの中でのみ利用できるものとなる
public有り:そのクラスはどこからでも利用できるものとなる。
小規模で使い捨てのクラスでない限りクラスには原則としてpublicを付けて宣言する。
publicクラスの中でpublic付きで宣言されたメソッドは、パッケージとは無関係にどこからでも利用できるものとなる。
コンストラクタ多重定義
メソッド同様コンストラクタは多重定義できる。必要であればコンストラクタを多重定義しクラスインスタンス構築のための複数の方法を提供せよ。
コピーコンストラクタ
自分自身と同じクラス型の引数を受け取って全フィールドの値をコピーするコンストラクタのこと。
toString:文字列を返すメソッド
そのクラスのインスタンスの現在の状態を文字列表現で返却するメソッドは以下の形式で定義する。
public String toString() { /*...*/ }
文字列の連結について
「文字列+クラス型変数」あるいは「クラス型変数+文字列」の演算では、そのクラス型に対してtoStringメソッドが自動的に呼び出されて文字列に変換された上で文字列の連結が行われる。
フィールドの初期化
フィールドの宣言に初期化子を与えておけば、そのフィールドはインスタンス生成時に与えられた初期化子の値で初期化される。
同一クラス内のコンストラクタの呼び出し
コンストラクタの先頭ではクラス内の他のコンストラクタを、this(...)によって呼び出すことができる。
同一あるいは類似のコードをクラス中に散在させるべきではない。行う処理が他のメソッドやコンストラクタで実現されていればそのメソッドやコンストラクタを呼び出すべきである。
参照を返すメソッド
参照値を通じて外部から間接的に値を書き換えられてしまうので、不用意に参照型フィールドの値を返却してはいけない。
コンポジション
has-Aの関係
あるクラスがその一部分として別のクラスをもつこと