Parameterübergabe - Objekt - Referenz

qwert

Aktives Mitglied
Hallo,

ich frage mich, ob es möglich ist, bei einem als Parameter übergebenen String die Zeichen zu verändern, so dass der Aufrufer dies ohne Rückgabewert mitbekommt.

Meine Überlegungen hierzu:
String ist ein Objekt, also wird nur die Referenz auf eine Zeichenkette übergeben. Damit sollte es also möglich sein, einfach die Referenz "umzubiegen".
Mit toCharArray() könnte man an die Zeichen kommen, hier erhält man aber scheinbar keine Referenz auf das Array sondern eine Kopie. Eine andere Methode habe ich nicht gefunden, sodass es scheint als hätten die Java-Designer es bewusst verhindern wollen, dass dies ermöglicht wäre.

Stimmen meine Überlegungen oder habe ich was übersehen und es geht doch irgendwie oder ist beides falsch ;)? Und wenn es nicht geht, ist das dann nicht ein wenig inkonsequent (wo man Objekte doch über die Referenz verändern können sollte)?

Vielen Dank für eine kurze Erläuterung.
 

kaoZ

Top Contributor
Strings sind immutable ( unveränderlich ), du kannst jedoch zur Manipulation einen
Code:
StringBuilder
, welcher deinen String Buffert und eine modellierte Version dessen zurückliefern kann verwenden.

Schau dir dazu einfach mal die API Dokumentation an.
 
Zuletzt bearbeitet:

qwert

Aktives Mitglied
Vielen Dank :).

Aber warum ist das so? Was hat das für Vorteile? Ehrlich gesagt finde ich das nämlich - wie bereits gesagt - äußerst inkonsequent, da ein String ja dann quasi keinen vollkommenen "Objektstatus" mehr hat. Und kann ich auch ein Objekt selbst erstellen und es als "immutable" deklarieren?
 

Gucky

Top Contributor
Ein Objekt ist immutable (frei übersetzbar mit nicht mutierbar oder nicht veränderlich), wenn es nicht oder nur mit Tricks verändert werden kann. Das Verändern also nicht vorgesehen ist. Das hat den Vorteil, dass die somit Threadsicher sind, da kein Thread schreibend auf dieses Objekt zugreifen kann. Will man es doch verändern, so wird ein neues Objekt zurückgegeben.
 

kaoZ

Top Contributor
Und kann ich auch ein Objekt selbst erstellen und es als "immutable" deklarieren?


Hier wäre z.B
Code:
[B] final[/B]
das Stichwort

Java:
final int var = 12;

dies bedeutet das du den Wert welchen du einmal zugewiesen hast, nach dem initialisieren nicht mehr ändern kannst.

Dies ist wichtig , wenn du garantieren musst das keine Inkonsistenzen auftreten, z.B sind Konstanten ein gutes Beispiel, dort sicherst du durch die Deklaration in Verbindung mit der Initialisierung zu das diese eben Konstant und unveränderlich sind.

Ein Beispiel wo sowas z.B Sinn machen würde wäre sowas :

Java:
final static int SCREEN_WIDTH = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();

gleiches gilt für Klassen oder Methoden, sind diese als final deklariert kann weder durch Vererbung abgeleitet werden, noch können finale Methoden überschreiben werden.

Dies wird z.B bei Singletons genutzt um wirklich nur eine einzige Instanz zuzusichern.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Methode Objekt als Parameterübergabe Java Basics - Anfänger-Themen 6
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
P Parameterübergabe, von Methode zu Methode zu main Java Basics - Anfänger-Themen 4
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
B Parameterübergabe in main Java Basics - Anfänger-Themen 1
E Erste Schritte Parameterübergabe - Prozentrechner Java Basics - Anfänger-Themen 5
S Methoden Parameterübergabe Java Basics - Anfänger-Themen 4
S Parameterübergabe zwischen zwei Programme Java Basics - Anfänger-Themen 4
Joew0815 Parameterübergabe Java Basics - Anfänger-Themen 3
K Parameterübergabe im Terminal(Linux) Java Basics - Anfänger-Themen 8
V Parameterübergabe von Methoden verstehen Java Basics - Anfänger-Themen 13
P Java-Konsolenanwendung mit Parameterübergabe (Windows) Java Basics - Anfänger-Themen 3
X Parameterübergabe per Reflection Java Basics - Anfänger-Themen 10
H Parameterübergabe Java Basics - Anfänger-Themen 4
X Parameterübergabe Java Basics - Anfänger-Themen 6
S Parameterübergabe - identische Funktionen, aber falsche Funktion Java Basics - Anfänger-Themen 5
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
E Einfache Frage zur Parameterübergabe in Methoden Java Basics - Anfänger-Themen 8
A Parameterübergabe zwischen statischen und nicht statischen Klassen Java Basics - Anfänger-Themen 6
L Parameterübergabe Java Basics - Anfänger-Themen 6
K Parameterübergabe Java Basics - Anfänger-Themen 3
W Parameterübergabe Java Basics - Anfänger-Themen 9
Y Probleme mit Parameterübergabe Java Basics - Anfänger-Themen 8
O Parameterübergabe mit RadioButtons Java Basics - Anfänger-Themen 2
V Return - JA/NEIN - Parameterübergabe Array (Referenz) Java Basics - Anfänger-Themen 7
G Parameterübergabe über mehrer Klassen Java Basics - Anfänger-Themen 2
S parameterübergabe Java Basics - Anfänger-Themen 5
M Parameterübergabe an *.jar Java Basics - Anfänger-Themen 5
M Parameterübergabe an externe JAR-Datei? Java Basics - Anfänger-Themen 2
B Frage zu Code (Parameterübergabe) Java Basics - Anfänger-Themen 14
S Parameterübergabe: Generische Klasse Java Basics - Anfänger-Themen 4
B printf() mit Parameterübergabe? Java Basics - Anfänger-Themen 2
G Parameterübergabe als Referenz bzw. als Kopie Java Basics - Anfänger-Themen 4
G Java Applikation ein Programm mit Parameterübergabe starten Java Basics - Anfänger-Themen 3
V doPost parameterübergabe funktioniert nicht. Java Basics - Anfänger-Themen 5
G Problem bei Parameterübergabe Java Basics - Anfänger-Themen 2
T Runtime.getRuntime().exec mit parameterübergabe Java Basics - Anfänger-Themen 16
roflomfg Parameterübergabe in in "*.jar" files möglich? Java Basics - Anfänger-Themen 8
F Rekursive Aufrufe, Parameterübergabe, call by reference Java Basics - Anfänger-Themen 3
D probleme bei der Parameterübergabe Java Basics - Anfänger-Themen 12
M Parameterübergabe Java Basics - Anfänger-Themen 7
J Nested Layouts - Parameterübergabe bei ActionListener Java Basics - Anfänger-Themen 2
M Parameterübergabe! Java Basics - Anfänger-Themen 4
M Probleme bei Parameterübergabe in Rekursion Java Basics - Anfänger-Themen 5
K Parameterübergabe bei quickSort Java Basics - Anfänger-Themen 6
G Parameterübergabe bei Runtime.getRuntime().exec Java Basics - Anfänger-Themen 16
J parameterübergabe arraylist Java Basics - Anfänger-Themen 9
D args und parameterübergabe Java Basics - Anfänger-Themen 8
D Parameterübergabe mit JSP Java Basics - Anfänger-Themen 2
I Parameterübergabe beim Aufruf in der Kommandozeile Java Basics - Anfänger-Themen 4
B Parameterübergabe und return; Java Basics - Anfänger-Themen 3
F Performanceverlust bei ständiger Parameterübergabe? Java Basics - Anfänger-Themen 4
K Parameterübergabe Java Basics - Anfänger-Themen 5
R Parameterübergabe Java Basics - Anfänger-Themen 13
H Parameterübergabe zwischen einzelnen Funktionen Java Basics - Anfänger-Themen 4
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
Rxiiz Objekt aus ComboBox entfernen Java Basics - Anfänger-Themen 4
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
Say Objekt Java Basics - Anfänger-Themen 4
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
M BlueJ Objekt in Objektliste Java Basics - Anfänger-Themen 2
B Objekt in Klassendiagramm an fremdes Objekt weiterreichen? Java Basics - Anfänger-Themen 6
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
amelie123456 Objekt Farbe Quellcode Java Basics - Anfänger-Themen 4
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
O Warum bekommen wir nicht die Referenz vom zurückgegebenen Objekt? Java Basics - Anfänger-Themen 4
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
melaniemueller Fernseher als Objekt Java Basics - Anfänger-Themen 9
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
Nina Pohl Ein Vorgang bezog sich auf ein Objekt, das kein Socket ist Java Basics - Anfänger-Themen 6
B Objekt kopieren und sämtliche Referenzen von diesem Objekt? Java Basics - Anfänger-Themen 3
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
P Objekt in mehreren Methoden verwenden. Java Basics - Anfänger-Themen 3
S Aufzurufendes Objekt Java Basics - Anfänger-Themen 3
CptK Überprüfen ob übergebenes Objekt zu Generics passt Java Basics - Anfänger-Themen 2
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
P Ein Objekt nach einem String durchsuchen? Java Basics - Anfänger-Themen 7
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben