PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : java: wo sind meine pointer?



Alex_K
14-10-2003, 17:25
ich kenne mich mit c++ relativ gut aus, habe aber nur grundlegende kentnisse in java. daher bin ich nun auf folgendes problem gestoßen:

ich habe 2 klassen (ich nenne sie jetzt mal klasse1 und klasse2). klasse2 soll mit objekten der klasse1 arbeiten können.
nun lege ich z.b. in der main methode objekte der kasse1 an, und ein objekt der klasse2. die klasse2 soll nun eine eine methode für eine oder mehrere objekte der klasse1 aufrufen. in C++ würde ich das so lösen dass ich der klasse2 eine referenz oder einen pointer auf die objekte der klasse1 ein übergebe. nun in java sind mir soche sachen wie referenzen oder pointer nicht bekannt. zur zeit habe das so gelöst dass ich in der klasse2 direkt auf die objekte in main funktion zugreife, also z.b. Lager.objektderkasse1.methode() (lager ist der name der klasse in der sich main befindet).
nun das ganze ist aber für eine übung auf der uni welche objektorientierte programmierung heißt und daher ist das ziehl nicht das es einfach funktionieren soll sondern es soll so objektorientiert sein wie möglich.
irgendwie hab ich aber dass gefühl dass meine lösung nicht gerade ideal. aber gibt es eine bessere möglichkeit dass oben beschrieben problem zu lösen?

peschmae
14-10-2003, 17:56
dein ellenlanger Fliesstext in Kleinschreibung ist nicht gerade der Wahnsinn, aber ich versuchs trotzdem:

In Java sind werden Objekte immer über Referenzen angesprochen. Die Verhalten sich in etwa wie Pointer. Nur das du damit keinen Mist bauen kannst.

Hilft dir das?

(Genau deshalb kann man z.B. auch nicht zwei Strings per == vergleichen, sondern muss "String.equals(String s)" verwenden - schliesslich sind ja die Referenzen (meist) nicht dieselben, auch wenn der String derselbe ist)

MfG Peschmä

axeljaeger
14-10-2003, 17:57
Versuch mal so zu tun, als wäre die Zuweisung ("=") kein copy, sondern ein Copy-by-reference. Ich glaub nämlich, Klassen werden in Java immer als Referenz übergeben.

peschmae
14-10-2003, 18:14
jup, genau das wollt ich eigentlich sagen. Aber dein Statement ist a bisserl klarer. Falls er drauskommt ;)

MfG Peschmä

Alex_K
14-10-2003, 18:55
danke, alles klar.

das gibt gleich eine viel schönere lösung :)

peschmae
14-10-2003, 19:03
hehe, und dann sage mir noch einer ein vernünftiges Grundlagenbuch sei für nix :cool:


Ganz sooo grässlich ist java also nicht :)

MfG Peschmä