-1

下面是我的演示程序:

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中是按值传递的,那么为什么它表现得无所谓呢?

谁能帮我理解这一点?

4

1 回答 1

2

您正在传递 Calendar 的引用,因此向其添加日期会反映在调用方法中。

于 2013-03-21T16:57:02.933 回答