welcome: please sign in
location: "まとめと補足"の差分
3と6のリビジョン間の差分 (その間の編集: 3回)
2008-12-08 02:07:09時点のリビジョン3
サイズ: 613
編集者: masahiko
コメント:
2008-12-09 13:10:41時点のリビジョン6
サイズ: 1676
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:

static変数(静的変数)はクラス内に取られる変数で、
そのクラスのインスタンスから共通のものとして扱うことができます。

----
=== 例 ===

Takoyakiクラスにはkosuとajiの2つの変数があります。
行 22: 行 30:
ajiはインスタンスの属性であり、
インスタンス内に変数が取られます。

一方static修飾子がつけられた変数kosuはクラス内に取られます。

図で示すとこのようになります。
クラス内に点線で囲まれた変数はインスタンスの型紙として用いられるだけで、
ここに変数が取られるわけではありません。
行 23: 行 40:

この変数を使ってTakoyakiインスタンスが作られた個数を数えることができます。

 . 変数宣言のところで値を0に初期化しておきます。
 . コンストラクタが呼ばれたらkosuを1増やします。

いくつかコンストラクタを呼び出した後、変数kosuの値を出力して確かめることができます。

static変数

static変数(静的変数)はクラス内に取られる変数で、 そのクラスのインスタンスから共通のものとして扱うことができます。


Takoyakiクラスにはkosuとajiの2つの変数があります。

  •    1  public class Takoyaki
       2  {
       3         static int kosu;
       4         String aji;
       5         
       6         Takoyaki(String a)
       7         {
       8                 aji = a;
       9         }
      10         
      11         public static void main(String[] args)
      12         {
      13                 new Takoyaki("ソース");
      14                 new Takoyaki("しょうゆ");
      15         }
      16  }
    

ajiはインスタンスの属性であり、 インスタンス内に変数が取られます。

一方static修飾子がつけられた変数kosuはクラス内に取られます。

図で示すとこのようになります。 クラス内に点線で囲まれた変数はインスタンスの型紙として用いられるだけで、 ここに変数が取られるわけではありません。

  • static1.png

この変数を使ってTakoyakiインスタンスが作られた個数を数えることができます。

  • 変数宣言のところで値を0に初期化しておきます。
  • コンストラクタが呼ばれたらkosuを1増やします。

いくつかコンストラクタを呼び出した後、変数kosuの値を出力して確かめることができます。

  •    1  public class Takoyaki
       2  {
       3         static int kosu = 0;
       4         String aji;
       5         
       6         Takoyaki(String a)
       7         {
       8                 kosu++;
       9                 aji = a;
      10         }
      11         
      12         public static void main(String[] args)
      13         {
      14                 new Takoyaki("ソース");
      15                 new Takoyaki("しょうゆ");
      16                 System.out.println( kosu );
      17         }
      18  }
    

まとめと補足 (最終更新日時 2010-12-06 01:04:53 更新者 masahiko)