引数の受け渡し方法

PHPz
リリース: 2024-08-24 06:34:08
オリジナル
878 人が閲覧しました

引数をメソッドに渡す 2 つの方法:

値による呼び出し:

  • サブルーチンの仮パラメータの引数の値をコピーします。
  • メソッド内のパラメータに加えられた変更は、元の引数には影響しません。

参照による呼び出し:

  • 値ではなく引数への参照を渡します。
  • パラメータに加えられた変更は、呼び出しの元の引数に影響します。

プリミティブ型パッセージ:

  • プリミティブ型 (int や double など) が渡される場合は、値による呼び出しが使用されます。
  • メソッドは引数のコピーを受け取るため、メソッド内で行われた変更は元の値に影響しません。

例:

class Test {
    void noChange(int i, int j) {
        i = i + j;
        j = -j;
    }
}

class CallByValue {
    public static void main(String[] args) {
        Test ob = new Test();
        int a = 15, b = 20;
        System.out.println("a and b before call: " + a + " " + b);
        ob.noChange(a, b);
        System.out.println("a and b after call: " + a + " " + b);
    }
}

ログイン後にコピー

オブジェクト通路:
オブジェクトがメソッドに渡されるとき、Java は参照による呼び出しを使用します。
メソッドはオブジェクトへの参照を受け取ります。つまり、メソッド内で行われた変更は元のオブジェクトに影響します。

例:

class Test {
    int a, b;
    Test(int i, int j) {
        a = i;
        b = j;
    }
    void change(Test ob) {
        ob.a = ob.a + ob.b;
        ob.b = -ob.b;
    }
}

class PassObRef {
    public static void main(String[] args) {
        Test ob = new Test(15, 20);
        System.out.println("ob.a and ob.b before call: " + ob.a + " " + ob.b);
        ob.change(ob);
        System.out.println("ob.a and ob.b after call: " + ob.a + " " + ob.b);
    }
}

ログイン後にコピー

change() メソッド内の変更は、引数として渡された ob オブジェクトに影響します。

プリミティブ型とオブジェクトの違い:
プリミティブ型: 値によって渡され、メソッドへの変更は元の値に影響しません。
オブジェクト: 参照によって渡され、メソッドへの変更は元のオブジェクトに影響します。

最終概要:
Java で引数を渡すには、値または参照を使用できます。プリミティブ型は値によって渡されますが、オブジェクトは参照によって渡されるため、元の引数に異なる影響が生じます。

Como os argumentos são passados

以上が引数の受け渡し方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート