手机版
你好,游客 登录 注册
背景:
阅读新闻

Java值传递

[日期:2015-10-22] 来源:Linux社区  作者:大展鸿图1991 [字体: ]

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类型,可以进行值传递。

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-10/124414.htm

linux
相关资讯       Java值传递  值传递 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款