下面是我的演示程序:
public class Demo {
public static void main(String[] args){
Demo d = new Demo();
Calendar c = Calendar.getInstance();
System.out.println("Initial : "+c.getTime());
d.addDay1(c);
System.out.println("After addDay1 call : "+c.getTime());
}
public void addDay1(Calendar d){
d.add(Calendar.DATE, 1);
}
}
我得到的输出如下:
Initial : Thu Mar 21 05:20:53 IST 2013
After addDay1 call : Fri Mar 22 05:20:53 IST 2013
但我期望输出为:
Initial : Thu Mar 21 05:20:53 IST 2013
After addDay1 call : Thu Mar 21 05:20:53 IST 2013
为什么在我的方法调用之后addDay1
,日历对象c
在 main 方法中添加了日期?
在java中,参数在java中是按值传递的,那么为什么它表现得无所谓呢?
谁能帮我理解这一点?