静的メンバ
以前メンバについての概略図を表記していたが、今回は異なる視点からメンバの勉強であったため、少し内容を変えて表記。言葉の区分自体は難しいことではないのだが、私自身詰め込みで頭が混乱してきているので、まずは整理のために作成。
クラスのフィールドを宣言するときに、staticが付加されていれば静的フィールド(またはクラス変数。以下では静的フィールドで統一して表記)と呼ばれる。
//静的フィールドへのアクセス方法
クラス名.フィールド名
インスタンス変数名.フィールド名
静的メソッド(またはクラスメソッド。以下、静的メソッドで統一して表記)も同様にstaticを付加して宣言することで定義される。そして静的メソッドの利用も以下のようにインスタンスからだけでなくクラス名からも直接呼び出せるようになる。
//静的メソッドへのアクセス方法
クラス名.メソッド名
インスタンス変数名.メソッド名
ただし、静的メソッドで非静的メンバ(インスタンス変数やインスタンスメソッド)を利用するメソッドはエラーとなるので注意。
オブジェクト指向において、newによって生成される個々のインスタンスは基本的に独立した存在であることが基本原則であった。そのため、作成するメソッドは特別な事情がない限りstaticを付けるべきではない。
しかしながら、同じクラスから生成された複数のインスタンスで1つのフィールドを共有したい場合に、静的フィールドを宣言する。この静的フィールドはクラス間で共有して用いる目的が一般的であるため、finalを付加して定数化させた方がよいとされる。