Ниже моя демонстрационная программа:Календарь класс не работает, как ожидалось в Java
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
имеет дополнительный день в t он главный метод?
В java параметры передаются по значению в java, так почему же он ведет себя равнодушно?
Может ли кто-нибудь помочь мне понять это?
@LuiggiMendoza, почему голосует, я не знаю об этом. – Abubakkar
@Abu почему бы день сменить на пятницу, но все равно быть 21-й? –
Почему вы ожидаете, что календарь будет таким же, если вы добавите 1 день? Вы добавили день, это отражает, что вы добавили день? – CodeChimp