Questa dichiarazione:
c2 = c ;
copierà il valore della c
in c2
. Il valore di c
è non a Calendar
oggetto - è un riferimento. Dopo questa dichiarazione, le due variabili hanno lo stesso valore: due riferimenti allo stesso oggetto. Qualsiasi modifica all'oggetto Calendar
può essere osservata tramite una variabile.
E 'come dare due persone diverse pezzi di carta dare il vostro indirizzo di casa - se una persona utilizza l'indirizzo per raggiungere la vostra casa e dipinge il portone verde, poi l'altra persona vedrà che anche.
Nota che questo non è Calendar
-specifica - questo è il comportamento di assegnazione per tutti classi in Java.
(È molto importante distinguere tra variabili, riferimenti e oggetti, in pratica.Nella discussione normale i tre sono spesso usati in modo non corretto per brevità, ma è necessario essere in grado di dire la differenza quando è necessario.)
si noti che questo codice:
Calendar c2 = Calendar.getInstance();
c2 = c;
sta creando una nuova istanza Calendar
inutilmente. Sarebbe essere scritto più sensibilmente come:
Calendar c2 = c;
Che il codice avrà lo stesso effetto visibile, ma senza chiamare Calendar.getInstance()
e poi gettare via l'oggetto appena creato.
fonte
2013-04-25 12:29:07
Spero sia corretto ..! – SenthilPrabhu
Perché non scrivere un piccolo programma di test per confrontare i risultati da solo? – Mike
Questa istruzione assegnerà un riferimento a 'c' alla variabile' c2'. ('c == c2' sarà' true'). – afk5min