Javaでパラメータの値を変更する方法
Javaでは、プリミティブデータ型の引数は値渡しされ、参照データ型の引数は参照渡しされる。そのため、プリミティブデータ型の引数の値を変更したい場合は、引数を別の変数に代入し、その変数の値を変更する。一方、参照データ型の引数の値を変更したい場合は、メソッド内部でその引数が参照しているオブジェクトのメンバ変数の値を直接変更する。
以下にいくつかのサンプル コードを示します。
プリミティブ データ型のパラメーターの値を変更します。
public class Main {
public static void main(String[] args) {
int num = 10;
System.out.println("Before modify: " + num);
modifyPrimitive(num);
System.out.println("After modify: " + num);
}
public static void modifyPrimitive(int value) {
value = 20;
}
}
ネイティブな日本語で言い換える:
Before modify: 10
After modify: 10
numというパラメータの値は変わっていないことがわかります。
引用データ型パラメータの値を変更します。
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice");
System.out.println("Before modify: " + person.getName());
modifyReference(person);
System.out.println("After modify: " + person.getName());
}
public static void modifyReference(Person p) {
p.setName("Bob");
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
出力として
Before modify: Alice
After modify: Bob
確認の上、person で指定されたオブジェクトのプロパティ値が正常に更新されていることを確認しました。