Forum:  Programmieren
Thema: Java: Referenzen
Themen-Übersicht
dbrust_2000
Aktiv
Dabei seit: 22.01.2007
Mitteilungen: 283
Themenstart: 2021-06-24 20:22
\sourceon Java public class Person{ private String name; public void setName(String name){ this.name = name; } public String getName(){ return name; } } public class Test{ private String z1,z2; private Person p1,p2; public Test() { p1 = new Person(); z1 = new String("abc"); } public void beispielMethode() { z2 = z1; z1=z1.replace('a','c'); System.out.println(z1); System.out.println(z2); p2 = p1; p1.setName("Gerd"); System.out.println(p1.getName()); System.out.println(p2.getName()); //output: //_______________ //cbc //abc //Gerd //Gerd } } \sourceoff Wieso wird im ersten Fall die Änderung (abc-->cbc) nicht übernommen, im zweiten Fall aber doch? z1 und z2 referenzieren doch das gleiche Objekt ebenso wie p1 und p2 das gleiche Objekt referenzieren. Könnt ihr mir das erklären?

sebp
Aktiv
Dabei seit: 10.12.2017
Mitteilungen: 174
Beitrag No.1, eingetragen 2021-06-24 20:37
.replace() liefert eine neue Referenz auf ein neues Objekt zurück, was du z1 zuweist. Du änderst nicht das ursprüngliche Objekt auf das z1 verwies.



Dieses Forumbeitrag kommt von Matroids Matheplanet
https://https://matheplanet.de

Die URL für dieses Forum-Thema ist:
https://https://matheplanet.de/default3.html?topic=254633=5101
Druckdatum: 2021-09-23 00:46