您的位置:首页 > 编程语言 > Java开发

Java的值传递

2016-05-24 21:54 337 查看
public static void main(String[] args){
String A = "HelloWorld";
String C = A;
C = Change(A);

System.out.println(A);
//结果为: HelloWorld
}
public static String Change(String B){
B = "str";
return B;
}


可以看到代码的运行结果为a. 并 不是 b.

分析: 由于Java是值传递,所以形参B只是简单拷贝了实参A的引用值.

如图:


而执行完B = “b”;后B指向了字符串“str”;A还是指向“HelloWorld”

所以A没有被改变。

那么,如果如何在Change中改变A的值呢,可以用一个类封装以下:

例如:

Class Temp{

public String string;

public Temp(String s){

string = s;

}

}

然后:

public static void main(String[] args){
String A = "HelloWorld";
String C = A;

Temp tem = new Temp(A);
C = Change(tem);
A = tem.string;

System.out.println(A);
//结果为: str
}
public static String Change(Temp B){
B.string = "str";
return B;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java