@634

修飾子の実験

Advertisement

static

今回はstatic。静的。

static変数

staticをつけて宣言された変数をstatic変数という。逆にstaticではない変数はインスタンス変数と呼ぶ。

static変数は、そのクラスをインスタンス化しないで使用することができる。
その場合、クラス名を指定して使うことになる。以下実験。
public class Test{
    public static void main(String args[]){
        stTest.num = 100;
        System.out.println("stTest.num : " + stTest.num);
    }
}

class StaticTest{
    static int num;
}
結果
StaticTest.num : 100
普通はこんな使い方しないけど。
newでStaticTestクラスのオブジェクトを作らなくても、StaticTestクラス内のnumが使えた。

次はオブジェクトを作った場合。StaticTest型のオブジェクト変数をいくつ作ってもプログラム中にnumはひとつだけになり、すべてのオブジェクトがそれを共有することになる
以下、実験。
public class Test{
    public static void main(String args[]){
        StaticTest st1 = new stTest();
        StaticTest st2 = new stTest();

        st1.num = 100;  //st1の方のnumにだけ代入

        System.out.println("st1のnum : " + st1.num);
        System.out.println("st2のnum : " + st2.num);
    }
}

class StaticTest{
    static int num;
}
結果。
st1のnum : 100
st2のnum : 100
実験の結果、StaticTest型変数のst1とst2が両方同じnumを使用していることがわかる。

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール