|
import java.awt.Point;
public class Change {
public static void changeInt(int i) {
i = 10;
}
public static void changeString(String str) {
str = "Hello";
}
public static void changePoint(Point p) {
p.x = 5;
p.y = 5;
}
public static void main(String []args) {
int i = 1;
String str = "Hi";
Point p = new Point(1, 1);
changeInt(i);
changeString(str);
changePoint(p);
System.out.println(i);
System.out.println(str);
System.out.println(p);
}
}
大家说说这道程序会输出什么?
为什么 String 没改而 Point 改了,Java 是以 By value 的方式传的参数,String 和 Point 传的都是
这两个对象的 reference 的复件,为什么一个改变了其值另外一个却没有? |
|