设为首页 加入收藏

TOP

Java值传递
2015-11-10 13:45:16 来源: 作者: 【 】 浏览:2
Tags: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类型,可以进行值传递。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇帮你提升 Python 的 27 种编程语言 下一篇归并排序的Java实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: