Wenn ich für-Schleife verwenden, normal,
alle Elemente in einem Array werden normalerweise initialisieren:Warum werden Array-Elemente nicht in einer erweiterten for-Schleife initialisiert?
Object[] objs = new Object[10];
for (int i=0;i<objs.length;i++)
objs[i] = new Object();
Aber wenn ich eine für-jede Schleife.
Die Arrayelemente sind noch null
, nach der Schleife:
Object[] objs = new Object[10];
for (Object obj : objs)
obj = new Object();
I obj
in einem Array zu einem bestimmten Element verweist gedacht,
so, wenn ich es zu initialisieren, wird das Array-Element sein, initialisiert auch.
Warum passiert das nicht?
Abschnitt 14.14.2 sagt mir nichts darüber, aber Ihre Antwort ist sehr klar, danke! –
Nur um zu überprüfen, bedeutet das noch, dass Methoden auf 'objs [i]' noch durch 'obj' gemacht werden können, indem' obj.method() 'gemacht wird? Da 'obj' auf 'objs [i]' ' – SmRndGuy
@SmRndGuy zeigt: Was meinst du mit" Methoden ... kann man noch machen "? Sie können Methoden immer noch über die Referenz aufrufen, aber der Inhalt des Arrays wird nicht geändert. –