Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Jetzt lerne ich Java 6

Arrays kopieren

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Da meint man, das Kopieren von Arrays funktioniert wie gewohnt - und schon fällt man auf die Nase. Zwar ist die klassisch erstellte Kopie eines Arrays benutzbar, doch der Code dahinter verändert ungewollt das Original!
03:21

Transkript

Wir kommen zu einer kleine File zum Thema Arrays kopieren Ich habe eine Array Personen, da liegen einige und ich komme jetzt auf die Idee, ein zusätzlich Arrays zu haben wollen eine Copy davon mit dem Nmen Staff Nun, Sie können mir jetzt von Idee kommen Ich sage String und zwei Array, nenne das Stringdef, und weise nun fröhlich einfach mal Personen zu wuala, damit müssten wir eine Copy haben, denn hier hinein wird alles gelegt was in Personen ist wenn ihnen das mal in Quellcode passiert, haben Sie ein ziemlich gemeinen Fehler den möchte ich kurz zeigen, Sie legen jetzt hier ein Staff Null, statt dem Gerhard Koren noch einfach mal einen Franz Koren wuala, dieser gute Franz Koren hier, der wird jetzt natürlich ausgegeben wenn ich also, hier das System.out.print In, das Ganze ausgebe als def, dann hätten wir jetzt hier Staff 0 jetzt Ausgaben und bekommen jetzt wirklich hier einen Franz Koren aus def und jetzt kommt einig der Gemeine, ich gehe jetzt mal nach Personen und lassen mal kurz aus dem Array Personen die Null ausgeben und sehe da auch dort es unser Gerhard Koren zum Franz Koren geworden was soll das, nun, bei ihre wunderschön copyaction hier oben haben Sie eine Sache vergessen Personen ist nicht das Array selbst sondern es ist der Zeide die Referenz auf das Array im Speichern und diese Referenz hier wurde nach Staff hineingelegt und dementsprechend zeigen Staff und Personen auf die gleiche Speichezelle und als Sie Staff Null geendet haben, haben Sie gleichzeitig auch Personen Null geendet, es ist die gleiche Speichezelle Also, Arrays kopieren so nicht das ist gefährlich statt dessen , versuchen jetzt einen anderen Weg und zwar bringt Personen als Instanz von Array auch noch eine Methode mit, mit ihm schon haben clone und hier könnt ein Copy des Objektes zurück eine wirkliche Copy des Objektes und diese Copy des Objektes werden wir jetzt auffangen eben unserem neuen Array String Array Staff, nachdem wir das nun gemacht haben, können wir das Ganze nocheinmal testen wir haben hier immer noch Staff 0 geändert und dann Personen 0 ausgegeben und wir Sehen Gerhard hat tatsächlich Gerhard, wunderbar das bedeuted unser Problem ist zugelöst Clone kopiert also der Objekt und gibt dann die neue Referenz zurück die wir hier in Staffdef auffangen eine kleine Typ noch, hier kommt eben ein Objektreferenz zurück und das ist ganz gut wenn wir hier bei der Typenanpassung einfach explizit noch angeben, was wir haben wollen, das heißt wir schreiben hier davor einfach noch den entsprechenden Datentyp, das wir eben ein String Array zurückbekommen wollen hat die im Moment das gleiche Ergebniss, aber das ist doch eine Pass sicherer Weg

Jetzt lerne ich Java 6

Steigen Sie ein in die Programmierung mit Java 6, lernen Sie die Grundlagen kennen und unternehmen Sie anschließend Ihre ersten Schritte in der objektorientierten Programmierung.

12 Std. 27 min (98 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!