1.

staticと非staticの違い

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

Javaのstaticと非staticの違いについての記事です。

以下、プログラムを用いてそれぞれの違いについて検証します。

 

【検証プログラム】

□呼び出される側のクラス

public class TestClass {

    //static変数
    private static int staticVal;

    //インスタンス(メンバ)変数
    private int instanceVal;


    //staticメソッド
    public static int getValStaticMethod() {
        return staticVal;
    }

    //インスタンス(メンバ)メソッド
    public int getValInstanceMethod() {
        return this.instanceVal;
    }

    //staticメソッド
    public static void setValStaticMethod(int arg) {
        staticVal = arg;
    }

    //インスタンス(メンバ)メソッド
    public void setValInstanceMethod(int arg) {
        this.instanceVal = arg;
    }

}

 

□呼び出す側のクラス

public class main {

    public static void main(String[] args) {

        //static変数に値を設定(メソッドの使用や変数を参照する際にインスタンス化する必要がない)
        TestClass.setValStaticMethod(100);

        //static変数を取得
        System.out.println("staticVal = " + TestClass.getValStaticMethod());


        /*
         * static変数とインスタンス変数の違いを検証
         */
        //オブジェクト1を生成してstatic変数とインスタンス変数に値を設定する
        TestClass obj1 = new TestClass();
        obj1.setValInstanceMethod(111);
        obj1.setValStaticMethod(200); //オブジェクトにしてstaticメソッドを呼び出すこともできるが、意味合いは同じ


        //オブジェクト2を生成してstatic変数とインスタンス変数に値を設定する
        TestClass obj2 = new TestClass();
        obj2.setValInstanceMethod(222);
        obj2.setValStaticMethod(300);

        //インスタンス変数はオブジェクト毎に別物扱いされるが、static変数はクラスで共有の値となる
        System.out.println("obj1 instanceVal = " + obj1.getValInstanceMethod());
        System.out.println("obj1 staticVal = " + obj1.getValStaticMethod());
    }
}
 

【出力結果】

staticVal = 100
obj1 instanceVal = 111
obj1 staticVal = 300

子ページ
子ページはありません
同階層のページ
同階層のページはありません

最近の質問

コメント一覧

コメントがありません

ログインしなければコメント投稿はできません。