Referenzvariablen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

wieso könnte das Sytem nicht einfach beim Erzeugen eines Objektes soviel Platz wie benötigt reservieren und den Inhalt dann in die Variable legen wie bei primitiven Datentypen. Warum wird in der Referenzvariablen nur ein Zeiger/Referenz auf das Objekt gelegt? Was hat das für einen Sinn? Speicher muss ja sowieso in der benötigten Größe eingerichtet werden. Warum also dann nicht gleich in der jeweiligen Variable alles abspeichern?
 

Wildcard

Top Contributor
Anonymous hat gesagt.:
Warum wird in der Referenzvariablen nur ein Zeiger/Referenz auf das Objekt gelegt? Was hat das für einen Sinn? Speicher muss ja sowieso in der benötigten Größe eingerichtet werden. Warum also dann nicht gleich in der jeweiligen Variable alles abspeichern?
Üblicherweise verwendet man ein Objekt an mehr als einer Stelle.
Ein Deep-Copy eines eventuell recht großen Objekts für jeden Mist zu machen hatte dramatische Auswirkungen auf den verwendeten Heap und die Laufzeit.
 

Marco13

Top Contributor
Stell dir vor du hast Objekte vom Typ "Universe". Und ein Universum hat, wie man sich denken kann, ziemlich viele Eigenschaften. So ein Objekt braucht dann vielleicht ... naja ... 10^10^100000 Terabyte Speicher. Wenn du nun 3 solche Objekte in einem Array hast, und willst diesen Array sortieren (wonach auch immer), kann es sein, dass zwei Universen vertaucht werden müssen. Das könnte recht aufwändig sein. Wenn in dem Array aber nur Referenzen stehen, dann werden einfach die Referenzen vertauscht.
 
G

Gast

Gast
Das ist also der Hauptgrund? Ich müsste sonst eine Kopie eines großen Objektes durchführen? Von Variable a nach b z.B.? Und dies würde zu lange dauern?
 

Wildcard

Top Contributor
Gast hat gesagt.:
Das ist also der Hauptgrund? Ich müsste sonst eine Kopie eines großen Objektes durchführen? Von Variable a nach b z.B.? Und dies würde zu lange dauern?
Zum einen das, zum anderen würde man sich vieler technischer Möglichkeiten berauben wenn jede Zuweisung ein Klon ist.
Dann kann man sich den ganzen Objekt-Kram auch sparen :wink:
 
G

Gast

Gast
Ich sag ja auch nicht, das jede Zuweisung ein Kon sein sollte. Abhängig von den übergebenen Parametern würde dann die Größe bzw. Ausprägung meines Objektes eine andere sein.
 
G

Gast

Gast
Du sagtest, man beraubt sich vieler Möglichkeiten wenn alles eine reine Kopie wäre. Dies meine ich garnicht. Wann werden denn viele exakte gleiche Kopien benötigt? Man passt doch die Objekte meistens durch unterschiedliche Parameter untereinander an. Oder sehe ich das falsch?

Ich wollte eher den Aspekt betrachten, wenn man ein Objekt erzeugt, das die Größe ja schwankt je nach übergebenen Parametern. Du bist jetzt aber von einer reinen Kopie ausgegangen.

Werden denn reine "Klone" überhaupt benötigt? D.h. viele Referenzen die auf ein Objekt zeigen bzw. viele Kopien d.h. unterschiedliche Referenzen auf verschiedene exakte Kopien?
 

Wildcard

Top Contributor
Gast hat gesagt.:
Ich wollte eher den Aspekt betrachten, wenn man ein Objekt erzeugt, das die Größe ja schwankt je nach übergebenen Parametern. Du bist jetzt aber von einer reinen Kopie ausgegangen.
Wer tut das?
Man erzeugt Objekte und verwendet Methoden von Objekten um eine Aktion durchzuführen, oder ihren internen Zustand zu verändern.
Von welchen 'Parametern' und 'Angleichungen' redest du?
 
G

Gast

Gast
z.B. Klasse Auto(autoname)

auto1=Auto(porsche)
auto2=Auto(vw)

D.h. auto1 und 2 sind nicht exakt gleich. Parameter wäre der Autonome.

auto2=auto1.clone wäre jetzt ja das gleiche objekt 2 mal vorhanden.

das habe ich gemeint. wann klont man schon Objekte, wollte ich damit anfragen?
 

Ariol

Top Contributor
auto1=Auto(porsche)
auto2=Auto(vw)

dabei werden auto1 und auto2 in java so angelegt:

Code:
Auto auto1=new Auto(porsche)
Auto auto2=new Auto(vw)

Es werden also 2 neue Objekte angelegt.
 

Wildcard

Top Contributor
Das ist keine Java Syntax.
meinst du vielleicht new Auto("porsche")?
Dann hast du nämlich zwei völlig unabhängige Objekte
 
G

Guest

Gast
Eben. Und ich wollte eigentlich nur wissen, wann denn da Objekte geklont werden würden. Du schriebts, das man sich da vieler Möglichkeiten beraubt. Könntest du bitte ein Bsp. bringen?

Vielen Dank
 
Status
Nicht offen für weitere Antworten.

Oben