ローカルクラスとは?
状態:-
閲覧数:1,265
投稿日:2013-04-24
更新日:2013-04-28
「メソッド内で定義する」クラス
・メソッドのコードブロックの中で宣言(定義)したクラスを「ローカルクラス」と呼ぶ
・「ローカルクラス」と同義
・クラスのメソッド内
・より正確には、「外部クラスのメソッド内」
※メソッド内(どこでも良い)で定義すれば、内部にクラスを作成することになるので、結果的に外部クラスのメソッド内に記述したことになる
・つまり、「メソッド内で定義する」クラスと、「外部クラスのメソッド内で定義する」クラスは、結果的に必ず同義となる
ローカルクラスは常に内部クラスである
・何故なら、このクラスを宣言(定義)可能な場所は、(クラスの)メソッド内だから
・「ローカルクラス=内部クラス」ではなく、「ローカルクラス<内部クラス」。つまり、内部クラスの一種
・メソッドのコードブロックの中で宣言(定義)したクラスを「ローカルクラス」と呼ぶ
ローカル内部クラス
・「ローカルクラス」と同義
宣言(定義)できる場所
・クラスのメソッド内
・より正確には、「外部クラスのメソッド内」
※メソッド内(どこでも良い)で定義すれば、内部にクラスを作成することになるので、結果的に外部クラスのメソッド内に記述したことになる
・つまり、「メソッド内で定義する」クラスと、「外部クラスのメソッド内で定義する」クラスは、結果的に必ず同義となる
常に内部クラスである理由
ローカルクラスは常に内部クラスである
・何故なら、このクラスを宣言(定義)可能な場所は、(クラスの)メソッド内だから
・「ローカルクラス=内部クラス」ではなく、「ローカルクラス<内部クラス」。つまり、内部クラスの一種
「ローカルクラス」の特徴
スコープ(有効)範囲
・宣言したメソッド内だけ
修飾子
public、private、protected等のアクセス修飾子を付けることができない理由
・クラスのスコープは「宣言したメソッド内だけ」、と予め決められているため
「内部クラス」との違い
・内部クラスの特徴である「外部クラスのインスタンス内に内部クラスのインスタンスが含まれる」という仕組みは持っていない