Javaではどのようにパラメータを渡すことができますか?
Javaにおいて、パラメータを渡す方法は次の通りです。
- 値渡し(パスバイバリュー):メソッドに引数の実際のコピーを渡すので、メソッド内で引数がどのように変更されても、実際のパラメーター値には影響しません。これはJavaのパラメーター受け渡しのデフォルトの動作です。
- パスバイレファレンス:実際的参数の参照先アドレスをメソッドに渡して、メソッド内でパラメータに行った変更は実際のパラメータの値に影響します。ただし、Javaには本当のパスバイレファレンスはなく、値渡しのみです。
- 配列の受け渡し: 配列はメソッドへのパラメータとして渡せ、メソッド内では配列の要素の値を変更できます。配列は参照型なので、実際に渡されるのは配列の参照アドレスです。
- オブジェクトの参照渡し:メソッドにオブジェクトを引数として渡すことができ、メソッド内でオブジェクトのプロパティ値を変更できます。同様に、オブジェクトは参照型なので、実際にはオブジェクトの参照に対するアドレスが渡されます。
なお、Javaはint, floatなどのプリミティブ型は全て値渡しですが、配列やオブジェクトなどの参照型は実際には参照アドレスのコピーが渡されます。値渡し、参照渡し関わらず、引数の実体参照アドレスに変更はありません。