我无法理解为什么重载函数'增加'不会改变整数而是改变Point.'Integer'类的支持是包装int,因此它将是一个引用类型.
import java.awt.Point;
public class test2 {
public static void main(String[] args) {
///1
Integer i = new Integer(0);
increase(i);
System.out.println(i);
///2
Point p = new Point(0,0);
increase(p);
System.out.println(p);
}
public static void increase(Integer i){
i = 1;
}
public static void increase(Point p){
p.setLocation(1, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是:
0
java.awt.Point[x=1,y=1]
Run Code Online (Sandbox Code Playgroud)
另外,它们是一种通过Java引用将变量传递给函数的简单方法吗?
Integer类是一个不可变类,这意味着它的内容在创建后无法更改.
此外,Java是按值i传递,因此变量按值传递,并且它在函数内部更改的事实对调用者没有影响.
请阅读此处:http://en.wikipedia.org/wiki/Immutable_object,了解有关不可变对象的更多信息.
| 归档时间: |
|
| 查看次数: |
563 次 |
| 最近记录: |