只改变一个Calender变量

来源:百度知道 编辑:UC知道 时间:2024/05/15 15:56:37
protected GregorianCalendar startDate;
protected GregorianCalendar endDate;

public void hell(GregorianCalendar cal)
{ startDate = cal;
endDate = cal;
endDate.add(Calender.DAY_OF_MONTH,2); }

我把一个变量的值传给另外两个,
为什么我只改变了 endDate的值,另外startDate和原先的cal日期都在变?
如何只改变一个?
我改变2个变量的原因很简单啊,因为我后面需要调用前面一个变量。我已经找到答案了, 是clone()这个方法

你这样写,不就是startdate和enddate还有cal这3个都指向同一个对象的引用吗?如果你只要改变其中一个,你就对那个对象调用方法就可以了,你为什么要把cal先赋给那两个变量?