• ベストアンサー

Javaのstatic

として (1) staticイニシャライザ (2) クラス変数 (3) クラスメソッド が有りますがこれ以外にstaticが適用されるものは有るでしょうか? この3つだけでしょうか? Cのローカル変数に使われているような使い方はできないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がるです。 Javaのstaticはおっしゃっている3つくらいかと。 ちなみにstaticイニシャライザは、他言語では比較的珍しい機能だったりするので、ソースの可読性とかも考えて、あまり使わないようにされるとよろしいかと、というあたりは老婆心から。 C言語の場合 ・関数内でstatic な書き方のほかに ・ファイル内で外部的にstatic ってのがあります。関数の「外」に書くstaticな変数ですね。 「そのファイル内ではみんな好き勝手に触れるけどそのファイル外の関数では一切触れないstaticな変数」になるです。 これをうまく使うと「C言語つかってオブジェクト実装」できるです(1ファイル1クラスにして保持したい情報を「外部的にstaticな領域」に持つと、「外部的にstaticな変数」はいわゆるprivateな扱いになるので)。 ざっくり散漫に説明してしまいましたが…どうでしょうか?

guuman
質問者

お礼

ありがとうございます 文法としては3つだけですね 実は1メソッド内だけに記述することによって Cのstatic変数のような使い方ができる方法は無いか知りたいのが本音だったのですが 3つの機能だけではできそうも有りません 一応別の質問としてあげたいと思います

その他の回答 (1)

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 んっと…なさりたいのは、Cでいうところの int hoge_function(void) { static int counter = 0; } みたいな事でしょうか? だとすると。 インスタンスが生成されていることが前提にはなりますが、単純に(static修飾子をつけない)クラス変数で再現が可能だと思うのですが。

guuman
質問者

お礼

ありがとうございます JavaにおけるCのstatic的な使い方を知りたいのではなく 3つの場合以外にstaticは使われているかどうか、使われているならばどんなものかを知りたいのです 3つの場合以外にあるでしょうか?

guuman
質問者

補足

失礼しました 質問を見てみると、Cの使い方も質問していました 回答された方法は知っていましたが それ以外に使い方はあるでしょうか? (この質問はついでの質問で最初の質問よりも優先度は低いのですが) よろしくお願いします

関連するQ&A