C'è un caso in cui un oggetto viene dichiarato senza una chiamata al costruttore? come in, ad esempio:
ArrayList<Integer> grades;
O è sempre il caso che ArrayList<Integer> grades
(come nel nostro esempio qui) sia sempre seguito da una chiamata a un costruttore come in,
ArrayList<Integer> grades = new ArrayList<Integer>();
Se quest'ultimo è il caso, cioè una dichiarazione di un oggetto è sempre seguita dalla sua inizializzazione con un costruttore, quindi perché non è
ArrayList<Integer> grades;
implica già
ArrayList<Integer> grades = new ArrayList<Integer>();
In caso contrario, quando viene dichiarato un oggetto senza una chiamata immediata al costruttore che lo segue?
È il caso che
ArrayList<Integer> grades;
può essere inizializzato con qualcosa di diverso da
= new ArrayList<Integer>();