この章では静的変数、静的メソッドについて説明します。
静的変数・静的メソッドはオブジェクトを作成してから使用するのではありません。
つまり、静的変数・静的メソッドはオブジェクトに属しているのではなくクラスに属していると言えます。
詳しい説明は例の後で行ないます。
では例を見てみましょう。 フィールド変数やメソッドを宣言する時に「static」を付けると静的変数、静的メソッドになります。 これまで使用してきたフィールド変数やメソッドはオブジェクトを作ってから使用しましたが、「static」を付けた変数やメソッドはオブジェクトを作成しなくても使用することが出来ます。
つまり、静的変数、静的メソッドはオブジェクトに属しているのではなく、クラスに属しているのです。
ですので、静的変数にアクセスするにはクラス名を使って(クラス名と変数名の間にはドットがあります)という形式で書きます。 ではこの静的変数をカウントしている箇所はどこかと言いますと以下で静的変数をカウントしています。
つまり、コンストラクタが呼び出されるたびに静的変数であるcount1に1を足しています。 もう一か所静的変数を出力している箇所があるのですが、それがresultメソッドです。ここでもcount1変数がカウントしているのが分かります。
静的変数も変数の一種ですので、普通のメソッドの中で使う事が出来ます。 結果は以下の通りです。 次は静的メソッドの例をみてみましょう。 静的変数の例ではコンストラクタで静的変数に足していましたが、この例では静的メソッドで静的変数に値を足しています。 静的メソッドを実行する場合にはという構文で書きます。
この例では以下の箇所です。
Ginkou.count();
この例では2回静的メソッドを実行しているので実行するごとに1が足されます。
静的メソッドで気を付けなければいけないことは静的メソッド内ではthisを使う事ができませんし、フィールド変数も使う事ができません。
結果は以下の通りです。
カテゴリー