Brauch ich dazu clone()?

Status
Nicht offen für weitere Antworten.

monti

Mitglied
Hallo!

Folgendes habe ich vor:

Eine Methode setNull(int position) soll an der Position im Array das entsprechende Personen-Objekt auf null setzten und das alte Objekt auf der Position zur toString() Ausgabe nochmal zurückgeben (z.B. Gelöscht: Person XYZ)

Kann ich das so machen:

Code:
public Person setNull(int position){
   Person temp = personenarray[position];
   personenarray[position] = null;
   return temp;
}

Oder sollte ich es besser mit clone machen?

Danke für eure Hilfe und nen guten Rutsch ins Jahr 2007!
 
H

habichnett

Gast
Schichworte zu deinem Problem wären,

Copy by value

versus

Copy by Reference,

mit temp = personenarray[position];

wird temp die Reference auf personenarray[position] übergeben,

und dann personenarray[position] null gesetzt, so wird auch temp auf null gesetzt, da es ja nur Referenciert wurde.

Das ist mitunter der Grund warum man bei manchen if Abfragen equals anstatt == benutzen sollte (z.B. Vergleich von Strings).

Personen/Strings sind halt keine (ich weiß gerade den Begriff nicht daher beschreibe ich es als einfache DatenTypen wie z.b int, double) sondern Objekte.

Ich persönlich würde daher eher clone() verwenden um temp als eine Kopie der Person zu haben anstatt nur die Reference.
 

BarFooß

Mitglied
habichnett hat gesagt.:
mit temp = personenarray[position];
wird temp die Reference auf personenarray[position] übergeben,
und dann personenarray[position] null gesetzt, so wird auch temp auf null gesetzt, da es ja nur Referenciert wurde.

Hä? Was?
Code:
personenarray[position]
ist eine Referenz auf eine bestimmte Stelle im Speicher. Die Zuweisung
Code:
temp = personenarray[position];
kopiert diese nach temp. Das anschließende
Code:
personenarray[position] = null;
hat keine Auswirkung auf temp.

Gibt's da nicht einen FAQ-Eintrag dazu? Ah ja, hier: http://www.java-forum.org/de/viewtopic.php?t=5390
 

monti

Mitglied
Habe jetzt mal bisschen rumprobiert. Mein Code von oben funktioniert ohne clone(). Also benutzt Java kein Call-by-Reference. Wieder was gelernt! Danke!

monti
 

byte

Top Contributor
Java isn Zwitter in der Hinsicht. Primitive Datentypen werden bei Übergabe kopiert, ebenso Referenzen. Objekte bleiben wie sie sind.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Rätsel (Geocaching) - Brauch Hilfe dazu! Java Basics - Anfänger-Themen 15
B Brauch Hilfe für Java Programm Java Basics - Anfänger-Themen 12
S Methoden Brauch Beispiele Java Basics - Anfänger-Themen 6
L Brauch Mittelwert jeweils 3 Zahlen die durch 20 Wiederholungen geteilt werden Java Basics - Anfänger-Themen 17
J Was brauch ich zum programmieren Java Basics - Anfänger-Themen 14
D brauch hillfe komm nicht mehr weiter... Java Basics - Anfänger-Themen 10
J Brauch kurz hilfe bei nem kleinem Zahlenschloss Programm. :) Java Basics - Anfänger-Themen 12
A Am Buch lesen, nun brauch ich eure Hilfe um mir super() zu erklären Java Basics - Anfänger-Themen 4
M Was brauch ich alles für Java Programmieren Java Basics - Anfänger-Themen 14
F Komme aus der Delphi-Welt und brauch jetz Java. Java Basics - Anfänger-Themen 5
H Brauch bei programmierung von quiz unterstützung Java Basics - Anfänger-Themen 11
K brauch dringend Hilfe *.jar abänder Java Basics - Anfänger-Themen 2
S Brauch mal eure Hilfe . Java Basics - Anfänger-Themen 7
G Wieso brauch java keine main() Methode? Java Basics - Anfänger-Themen 20
N String.replace brauch mal Hilfe Java Basics - Anfänger-Themen 2
G Was brauch ich alles Java Basics - Anfänger-Themen 7
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
J Kapselung - Dient dazu, um nur den Coder zu "schützen"? Java Basics - Anfänger-Themen 4
J Threads stoppen mit interrupt - Frage dazu Java Basics - Anfänger-Themen 7
E Elemente einer (öffentlichen) ArrayList in einer anderen Klasse zu einer ArrayList dazu fügen. Java Basics - Anfänger-Themen 7
A Beim txt Datei einlesen kommen zusätzliche Lehrzeichen dazu. Java Basics - Anfänger-Themen 5
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2
E JTable Sortiere und dazu gleichzeit die Liste Sortieren Java Basics - Anfänger-Themen 2
R Strings und dazu ein paar methoden Java Basics - Anfänger-Themen 12
D Wie bring ich die Klassen dazu sich richtig zu "kennen& Java Basics - Anfänger-Themen 2
M j2ee: was braucht es alles dazu? Java Basics - Anfänger-Themen 3
L Compiler-Fehler SupressWarning für clone() Java Basics - Anfänger-Themen 6
S Copy - Constructor vs clone() Java Basics - Anfänger-Themen 20
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
F Methoden Object.clone() Java Basics - Anfänger-Themen 1
B Klasse: Methode Clone Java Basics - Anfänger-Themen 5
Q Methode clone() bei Vererbung Java Basics - Anfänger-Themen 5
U "Clone" Fragen Java Basics - Anfänger-Themen 3
Luk10 Arrays.copy(myArray) vs myArray.clone() Java Basics - Anfänger-Themen 9
H Interface clone-Methode in Interface Java Basics - Anfänger-Themen 6
A Shallow copy .super.clone() Java Basics - Anfänger-Themen 2
B Deep Clone Java Basics - Anfänger-Themen 12
K clone() Java Basics - Anfänger-Themen 12
D probs mit clone und equals Java Basics - Anfänger-Themen 10
B clone() und casts umschreiben Java Basics - Anfänger-Themen 4
S Eigenes Objekt temporär verändern? (Clone)? Java Basics - Anfänger-Themen 12
T Deep Clone Java Basics - Anfänger-Themen 3
I clone() und Referenzen Java Basics - Anfänger-Themen 25
E Vector und clone() Java Basics - Anfänger-Themen 6
C Frage zu clone() Java Basics - Anfänger-Themen 2
B clone(), Clonable und Felder von Interfacetypen Java Basics - Anfänger-Themen 3
G Frage zu clone() Java Basics - Anfänger-Themen 6
G Problem clone und Vektor Java Basics - Anfänger-Themen 4
P Clone Methode treibt mich zum Wahnsinn Java Basics - Anfänger-Themen 10
M Arrays clonen mit clone() scheint nicht zu funktionieren Java Basics - Anfänger-Themen 4
S JPanel mit clone() duplizieren Java Basics - Anfänger-Themen 4
S Objekt klonen mit clone() Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben