Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Java: Referenzen
Druckversion
Druckversion
Autor
Schule J Java: Referenzen
dbrust_2000
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.01.2007
Mitteilungen: 283
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-06-24

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

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?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
sebp
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 10.12.2017
Mitteilungen: 172
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
dbrust_2000 hat die Antworten auf ihre/seine Frage gesehen.
dbrust_2000 hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


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]