コールバイバリューは、値渡しとも呼ばれ、メソッドに渡されるパラメーターの値がコピーされて渡されます。つまり、呼び出し元の変数の値そのものではなく、そのコピーがメソッド内で使用されます。メソッド内でパラメーターの値が変更されても、呼び出し元の変数には影響を与えません。以下は、コールバイバリューの例です。
public class Main {
public static void main(String[] args) {
int number = 10;
modifyValue(number);
System.out.println("変更後の値: " + number);
}
public static void modifyValue(int value) {
value = 20;
}
}
上記の例では、modifyValue
メソッドにnumber
の値が渡されています。しかし、modifyValue
メソッド内でvalue
の値が変更されても、number
の値は変わりません。つまり、コピーされた値が変更されたので、呼び出し元には影響がありません。
一方、コールバイレファレンスは、参照渡しとも呼ばれ、メソッドに渡されるパラメーターの参照が渡されます。つまり、呼び出し元の変数への参照がメソッド内で使用されます。メソッド内でパラメーターの値が変更されると、呼び出し元の変数にも変更が反映されます。以下は、コールバイレファレンスの例です。
public class Main {
public static void main(String[] args) {
int[] numbers = {10, 20, 30};
modifyArray(numbers);
System.out.println("変更後の配列: " + Arrays.toString(numbers));
}
public static void modifyArray(int[] array) {
array[0] = 100;
}
}
上記の例では、modifyArray
メソッドにnumbers
配列が渡されています。modifyArray
メソッド内で配列の最初の要素が変更されると、呼び出し元のnumbers
配列にも変更が反映されます。
コールバイバリューとコールバイレファレンスの違いを理解することは、Javaプログラミングにおいて重要です。メソッド呼び出し時にどちらの方式が使用されるかによって、メソッド内でのパラメーターの変更が呼び出し元に影響を与えるかどうかが異なります。
その他のパラメーター渡しの方式や具体的なコード例についても説明できますので、必要に応じてお知らせください。