PDA

View Full Version : Problem mit Pointern und Procedure



Seiten : 1 [2]

andreaspr@aon.at
03-08-15, 09:57
Außerdem kann man in Java keine Pointer zurückgeben sondern nur Klassen und Einzeltypen (Double, Int, ...). Bereits der String ist eine Klasse mit Speicher aus dem Heap.

In Java übergibst du Objekte und primitive Datentypen (int, long, char, ...)
Objekte sind Instanzen von Klassen und befinden sich im Heap und es wird nur die Speicheradresse (Pointer) übergeben.

Und du könntest folgendes schreiben:

public Object getObject() {...}
Da ja alle Klassen von der Klasse Object erben, musst du hier die Klasse vom zurückgegebenen Objekt prüfen.

In PHP z.B. werden auch immer Pointer bei Parametern übergeben. Erst wenn der Wert sich ändert, wird eine Kopie vom Objekt mit einer neuen Adresse erstellt. Dadurch wirkt es von außen, als würde der Wert statt des Pointers übergeben werden.
Wenn ich das "&" beim Parameter dazuschreibe definiere ich damit, dass auch beim Ändern das gleiche Objekt verwendet werden soll.

Also es gibt sehr wohl ähnlichkeiten, jedoch kann das Speicherverhalten von jeder Programiersprache unterscheiden.