歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java值傳遞

Java值傳遞的過程中要有區分,如果是final類型或者final static類型的對象就不可以進行值傳遞。

實體類如下:

public class person {
private String name;


private address ads;
public person() {
this.name = "first";
this.ads=new address(200100);
}
public address getAddress() {
return ads;
}


public String getName() {
return name;
}
}
public class address {
private int code;


public address(int code) {
super();
this.code = code;
}


public int getCode() {
return code;
}


public void setCode(int code) {
this.code = code;
}


}
不可以進行值傳遞的情況:
//進行值傳遞,但是傳遞的內容是String,即name;
public void change(person person1){
String nameString=person1.getName();
nameString="second";
}
使用值傳遞的情況:
public void changeaddress(person person1){
address ads=person1.getAddress();
ads.setCode(350000);
}

main函數:
public static void main(String[] args) {


passByValue pByValue=new passByValue();
person person1=new person();
pByValue.changeaddress(person1);
int m=0;
String name2=person1.getName();
address address2=person1.getAddress();
m++;
m=0;
}

這樣可以發現name沒有變化,而address變化了。這是由於name是String類型,為final類型,不可以進行值傳遞;而address不是final類型,可以進行值傳遞。

Copyright © Linux教程網 All Rights Reserved