コンピュータ言語でサブルーチンにパラメータを渡す方法は 2 つあります。
値による受け渡し (値による呼び出し): このメソッドは、パラメータ値をサブルーチンにコピーします。サブルーチンの仮パラメータ。このように、サブルーチンのパラメータを変更しても、サブルーチンの呼び出しパラメータには影響しません。
参照による呼び出し: このメソッドでは、(パラメーター値ではなく) パラメーターへの参照がサブルーチン パラメーターに渡されます。サブルーチンでは、参照は呼び出しにアクセスするために使用されます。パラメータが指定されています。このように、サブルーチンのパラメータを変更すると、呼び出し元のサブルーチンのパラメータに影響します。
Java では、単純型をメソッドに渡すとき、値によって渡されます。したがって、パラメータを受け取るサブルーチンのパラメータを変更しても、メソッドの外部には影響しません。次の例を見てください:
package toSzifucuan; class Teshks{ void meth(int i, int j) { i*=2; j/=2; } } public class CallByValue { public static void main(String[] args) { Teshks oob=new Teshks(); int a=15, b=20; System.out.println("a和b初始值:"+a+" "+b); oob.meth(a, b); System.out.println("a和b在计算后的值:"+a+" "+b); } }
プログラムによって得られる結果は次のとおりです:
a と b の初期値: 15、20
計算された値a と b の:15,20
meth() 内で発生する操作は、呼び出し内の a と b の値に影響を与えないことがわかります。
オブジェクトは参照によって渡されるため、オブジェクトをメソッドに渡すと、この状況は変わります。クラス型の変数を作成するときは、単にクラスへの参照を作成しているだけであることに注意してください。したがって、この参照をメソッドに渡すと、それを受け入れるパラメータは、そのパラメータが指すのと同じオブジェクトを指すことになります。これは、オブジェクトが参照呼び出しを介してメソッドに渡されたことの強力な証拠です。このオブジェクト内のオブジェクトに対する変更は、パラメータとしてオブジェクトに影響を与えます。例:
package toSzifucuan; class Teshks{ int a, b; public Teshks(int i, int j) { a=i; b=j; } void meth(Teshks oo) { oo.a*=2; oo.b/=2; } } public class CallByValue { public static void main(String[] args) { Teshks oob=new Teshks(15,20); System.out.println("a和b初始值:"+oob.a+" "+oob.b); oob.meth(oob); System.out.println("a和b在计算后的值:"+oob.a+" "+oob.b); } }
このプログラムによって出力される結果は次のとおりです:
a と b の初期値: 15、20
a と b の計算値b: 30, 10
この例では、meth() 内の操作はパラメーターとしてオブジェクトに影響を与えます。
オブジェクト参照がメソッドに渡されるとき、参照自体は値による呼び出しを使用して渡されます。ただし、渡される値はオブジェクトを指すため、値のコピーは、対応する引数が指すのと同じオブジェクトを指します。
注: 単純型がメソッドに渡される場合は、値渡しを使用します。オブジェクトは参照によって渡されます。
PHP 中国語 Web サイトには、無料の JAVA 入門チュートリアル が多数あり、誰でも学習することができます。
以上がJavaパラメータでパラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。