public static void main( String[] args) {
ParamTest pt = new ParamTest();
int i = 10;
pt.pass(i);
System.out.println( "print in main , i is " +i);
}
public void pass(int j){
j = 20;
system.out.println( "print in pass , j is " + j);
}
public static void main(String[ ] args) {
ParamTest pt = new ParamTest();
User hollis = new User();
hollis.setName( "Hollis");
hollis.setGender("Male");
pt.pass(hollis);
system.out.println( "print in main , user is " + hollis);}public void pass(User user) {
user.setName( "hollischuang");
System.out.println( "print in pass , user is " + user);}
print in pass , user is User{name='hollischuang', gender='Male '}
print in main , user is User{name='hollischuang' , gender='Male '}
public static void main( string[] args) {
ParamTest pt = new ParamTest();
string name = "Hollis";
pt.pass(name ) ;
System.out.println( "print in main , name is " + name);
}
public void pass(string name) {
name = "hollischuang";
system.out.println( "print in pass , name is " + name);
}
ログイン後にコピー
上記のコードの出力結果は
print in pass , name is hollischuangprint in main , name is Hollis
ログイン後にコピー
です。これはどういう説明ですか?オブジェクトも渡されますが、元のパラメータは The value has not been modified. 転送されたオブジェクトが再び値転送になっている可能性はありますか?
public static void main(String[ ] args){
ParamTest pt = new ParamTest();
User hollis = new User();
hollis.setName( "Hollis");
hollis.setGender("Male" );
pt.pass(hollis);
system.out.println("print in main , user is " + hollis);
public void pass(User user) {
user = new User();
user.setName( "hollischuang");
user.setGender( "Male");
system.out.println( "print in pass , user is " + user);
ログイン後にコピー
上面的代码中,我们在pass方法中,改变了user对象,输出结果如下:
print in pass , user is User{name='hollischuang ' , gender='Male '}
print in main , user is User{name='Hollis', gender= 'Male '}