Java 引數傳參機制
阿新 • • 發佈:2018-11-12
Java中,方法中所有引數都是“值傳遞”,也就是“傳遞的是值的副本”。
也就是說,我們得到的是“原引數的影印件,而不是原件”。因此,影印件改變不會影響原件。
·基本資料型別引數的傳值
傳遞的是值的副本。副本改變不會影響原件。
引用型別引數的傳值
傳遞的是值的副本。但是引用型別指的是“物件的地址“因此,副本和原引數都指向了同一個“地址”,改變“副本指向地址物件的值,也意味著原引數指向物件的值也發生了改變
例子:
public class User4 {
int id; //id
String name; //賬戶名
String pwd; //密碼
public User4(int id, String name)
{
this.id = id;
this.name = name;
}
public void testParameterTransfer01(User4 u)
{
u.name = "高小八";
}
public void testParameterTransfer02(User4 u)
{
u = new User4(200,"高三");
}
public static void main(String[] args)
{
User4 u1 = new User4(100,"高小七");
u1.testParameterTransfer01(u1);
System.out.println(u1.name);
u1.testParameterTransfer02(u1);
System.out.println(u1.name);
}
}