2009年8月6日木曜日

【JT】4 クラスとオブジェクト


* 4 クラスとオブジェクト
- 特になし。
** クラス
- BicycleとMountainBikeの例を再掲。
*** クラスを宣言する
- クラス宣言には次のものが含まれる。
- 修飾子
- (クラスの)名前
- 親クラスの名前
- インターフェイスの名前
- クラス本体 (波括弧で括る)
- クラス本体には次のものが含まれる。
- フィールドの宣言
- コンストラクタの宣言
- メソッドの宣言
*** メンバー変数を宣言する
- メンバー変数(aka フィールド)の宣言には次のものが
含まれる。
- アクセス修飾子
- 型
- 名前 (変数名)
- アクセス修飾子
- フィールド宣言にはアクセス修飾子がある。(ローカ
ル変数およびパラメータには無い)
- アクセス修飾子を一部紹介
- public : すべてのクラスからアクセス可能。
- private : 当のクラスからのみアクセス可能。
*** メソッドを定義する
- メソッドの宣言には次のものが含まれる。
- 修飾子
- 戻り型
- (メソッドの)名前
- パラメータリスト (丸括弧で括る)
- 例外リスト
- メソッド本体 (波括弧で括る)
- シグネチャ
- メソッドの名前とパラメータの型を合わせてシグ
ネチャと呼ぶ。
- 例
calculateAnswer(double, int, double)
- メソッドオーバーロード
- Javaでは、シグネチャでメソッドを判別する。す
なわち、名前が同じでパラメータリストが異なる
ものが存在でき、それらは別のメソッドであると
認識される。
- ちょっとCLOSのgeneric functionsのdispatchに似
ているような。
*** クラスのコンストラクタを作る
- コンストラクタの宣言には次のものが含まれる。
- 修飾子
- (コンストラクタの)名前 (ただしクラス名と同一
であることが必須)
- パラメータリスト (丸括弧で括る)
- 例外リスト?
- メソッド本体 (波括弧で括る)
- コンストラクタもオーバーロードする。
- コンストラクタのシグネチャの話はこの本には出て
きていない。あるのか?
- デフォルトコンストラクタ
- コンストラクタ宣言が無い場合、自動的に作成さ
れる。
- 具体的には、スーパークラスの引数なしコンスト
ラクタである。
*** メソッドやコンストラクタに情報を渡す
- varargs(aka 可変引数,可変長引数)もある
- 例
public PrintStream printf(String format, Object... args)
- argsはObjectの配列になる。
- パラメータの名前とシャドウイング
- パラメータの名前は、メソッド本体やコンストラ
クタ本体においてユニークでなければいけない。
- フィールドと名前がかぶった場合はそれをシャド
ウイングする。
- 基本データ型は値渡し
- オブジェクトは参照渡し
- 配列はどうなんだろう? newするから参照渡しかなぁ。


こつこつ。

0 件のコメント: