Zeigerobjekt

Status
Nicht offen für weitere Antworten.
N

n00ki3

Gast
hello,

Was ist ein Zeigerobjekt ? (fragt ihr euch bestimmt)
Ich suche den Namen einer Technik ,die man gerne benutzt... oder auch nicht .

Sagen wir : Ich habe eine GUI und eine Pallette von 4 Farben .
Farbe ist ein Objekt .

man erstellt also 4 mal farbe .
dann definiert man "ausgewählt" als Farbe .

"ausgewählt" wird aber nicht erstellt . sondern zeigt immer auf eines der 4 Objekte :)

heisst "ausgewählt" nun Zeigerobjekt oder hat es einen anderen namen ?
 

Jango

Gesperrter Benutzer
JPKI hat gesagt.:
Zeiger gibt es in Java nicht, ihnen entsprechen so ungefähr die Referenzen.

So "ungefähr"? Dann erkläre mir bitte mal, was eine Referenz von einem Zeiger unterscheidet. Diese terminologische Spitzfindigkeit ändert nichts an der Tatsache, das Reverenzen auch nur Zeiger sind. Ein Zeiger auf einen Speicherbereich. Oder nicht? :wink:
 

Wildcard

Top Contributor
Der Unterschied ist, das man Zeiger verbiegen kann, Referenzen nicht, das Zeiger auf Zeiger zeigen können, Referenzen nicht.
 

Jango

Gesperrter Benutzer
Code:
Klasse1 obj1=new Klasse1();
Klasse1 obj2=obj1;
Zeigt hier die Reverenz obj2 nicht auf den Speicher von obj1?

Verbiegen:
Eine neue Zuweisung an ein String-Objekt ist doch ein Verbiegen, oder? Das alte exestiert noch - nur der "Zeiger" wurde aufs neue umgebogen. Oder liege ich da völlig falsch? Bitte um Aufklärung.
 

Wildcard

Top Contributor
Code:
Klasse1 k1 = new Klasse1();
k2 = k1;
k1 = new Klasse1();
Wenn es ein Zeiger wäre, hätte sich mit der letzten Anweisung auch k2 geändert.
 

Redfrettchen

Bekanntes Mitglied
@topic: something along the lines of
Code:
private Farbe ausgewaehlt;
...
public void changeColour(Farbe farbe) {
    ausgewaehlt = farbe;
}
 
N

n00ki3

Gast
Danke für die vielen Zuschriften.

Ich hab mich mal informaiert zum Thema : Referenzen vs. Zeiger .
Dann werd ich es mal Referenz nennen :)
 

André Uhres

Top Contributor
C++ hat Zeiger, Java nicht, so wird jedenfalls oft gesagt.
In Wirklichkeit sind in Java alle Variablen Referenzen (ausser Primitives),
und Referenzen und Zeiger sind sich sehr ähnlich.
Zeiger erlauben es dir jedoch, Arithmetik damit zu machen, Referenzen nicht.
Java Referenzen verkörpern aber die gleichen Computerprinzipien wie Zeiger.
So kann man tatsächlich sagen, daß Java Zeiger hat, es hat nur keine Zeigerarithmethik.
Ohne die Referenzen müsste man alles "by value" übergeben.
Wenn es z.B. um ein grosses Array geht, dann würde das viel Zeit erfordern.
Ausserdem würde es z.B. keinen Sinn machen, ein GUI Panel "by value" zu übergeben.
Das Panel würde dann unnötigerweise zweimal herumschweben.
Referenzen (Zeiger) sind demnach in Java unverzichtbar.
 

Wildcard

Top Contributor
intern werden Zeiger verwendet(VM), die Sprache selbst hat keine.
In Java ist alles call-by-value, Ausnahmen gibt es nicht.
Mit call-by-value bei Objekten ist allerdings nicht das Objekt gemeint, sondern die Referenz die kopiert wird.
 

André Uhres

Top Contributor
Mit "by value" meine ich natürlich das Kopieren der Objekte :wink:
Es braucht, glaube ich, keine lange Erklärungen, um zu verstehen, daß es Referenzen und Zeiger sich im Prinzip sehr ähnlich sind. In diesem Sinn hat die Sprache Java also auch "Zeiger", nur keine Zeigerarithmetik wie C++ :wink:
 

Wildcard

Top Contributor
C++ hat Zeiger und Referenzen.
Einfach mal angenommen man entfernt die Zeiger aus der Sprachsyntax, hat man dann immer noch Zeiger, weil es ja Referenzen gibt? :wink:
 

André Uhres

Top Contributor
Es geht ja hier um Java. Natürlich hat C++ auch Refrenzen. Das ändert aber nix an der prinzipiellen Ähnlichkeit zwischen Zeiger und Referenzen :wink:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben