Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Java: Referenzen
Autor
Schule J Java: Referenzen
dbrust_2000
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 22.01.2007
Mitteilungen: 283
  Themenstart: 2021-06-24

\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?


   Profil
sebp
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 10.12.2017
Mitteilungen: 179
  Beitrag No.1, eingetragen 2021-06-24

.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.


   Profil
dbrust_2000 hat die Antworten auf ihre/seine Frage gesehen.
dbrust_2000 hat selbst das Ok-Häkchen gesetzt.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]