値の転送と参照の転送とは?
1.値の転送例コードは次のとおりです.
出力結果は次のとおりです.
10
5
出力結果は,メソッドmethod(int arg)のコードが変数varの値を変化させず,値伝達に属し,すなわち,パラメータの値を変化させることが実パラメータに影響を及ぼさず,味噌紫であることを示した.
2.参照転送、サンプルコードは次のとおりです.
出力結果は次のとおりです.
李四
李四
出力結果は,メソッドmethod(User u)コードがsanの内容を修正することができ,参照伝達に属すること,すなわち,パラメータ指向オブジェクトの属性を修正することが実パラメータ指向オブジェクトの属性に影響を及ぼすことを示した.
注:リファレンス伝達が発生した場合、シェイプのリファレンスを変更する場合(シェイプがオブジェクトを指す属性を変更するのではなく)、実パラメータのリファレンスには影響しません!!!抽象的ですか?ここを急いでテーマを作ってください.
public class A {
public void method(int arg) {
arg = 10;
System.out.println(arg);
}
public static void main(String[] args) {
int var = 5;
A a = new A();
a.method(var); //var , var
System.out.println(var);
}
}
出力結果は次のとおりです.
10
5
出力結果は,メソッドmethod(int arg)のコードが変数varの値を変化させず,値伝達に属し,すなわち,パラメータの値を変化させることが実パラメータに影響を及ぼさず,味噌紫であることを示した.
2.参照転送、サンプルコードは次のとおりです.
public class User {
public String username = "";
public User(String username) {
this.username = username;
}
@Override
public String toString() {
return username;
}
}
public class B {
public void method(User user) {
user.username = " ";
System.out.println(user);
}
public static void main(String[] args) {
B b = new B();
User san = new User(" ");
b.method(san); //u , ,
System.out.println(san);
}
}
出力結果は次のとおりです.
李四
李四
出力結果は,メソッドmethod(User u)コードがsanの内容を修正することができ,参照伝達に属すること,すなわち,パラメータ指向オブジェクトの属性を修正することが実パラメータ指向オブジェクトの属性に影響を及ぼすことを示した.
注:リファレンス伝達が発生した場合、シェイプのリファレンスを変更する場合(シェイプがオブジェクトを指す属性を変更するのではなく)、実パラメータのリファレンスには影響しません!!!抽象的ですか?ここを急いでテーマを作ってください.