インスタンス変数とクラス変数 (Java)
- メンバ
- クラスの特性として参照可能な変数(フィールド)やメソッドのこと
- メンバ変数(インスタンス変数)
- メンバ変数は、オブジェクトの状態を表す属性を保持するためのフィールド。
- 修飾子
static
を指定されていないメンバ変数は、インスタンス毎に確保される変数となり、インスタンス変数とも呼ぶ。 - そのクラスのオブジェクトへの参照が存在する限り、メモリ上に保持される
(オブジェクトとともに持続し続ける変数)
- クラスメンバ変数(クラス変数)
- static修飾子が付与されたもの
- クラス対応に1つだけ存在するメンバ変数。
- オブジェクトごとに存在するインスタンス変数とは異なりオブジェクトを生成 しなくてもアクセスは可能。
- インスタンス変数と異なりクラス単位で管理されている。
- ローカル変数
- メソッド内やメソッド引数で定義される変数
- 有効範囲(スコープ)は、当該メソッド内でしか生きられない。
- メソッド内のブロック内部で定義された場合は、そのブロック内から制御が外れるとメモリ上から破棄される。