Variablen Instanzen gleich aber warum ?

KenParker

Mitglied
Hallo alle zusammen,

Ich bin neue im Java und grübel gerade unter folgenden Problem.
die Variablen p und x werden wie folgendes erzeugt:
Java:
Player p = new Player("Paul");
PlayerRef x = new PlayerRef(p);

egal was ich in p zuordne, hat x der gleiche wert.

Ich kann nicht begreifen warum. Hat jemand ein Typ ?

Hier der Code:

Java:
public class ObjGen1
{

    Player p = new Player("Paul");
    PlayerRef x = new PlayerRef(p);

    public void ObjTest()
    {
        p.name = "Lukas";

        System.out.println("p :" + p);
        System.out.println("x :" + x);
        
        p.name = "Pablo";

        System.out.println("p :" + p);
        System.out.println("x :" + x);
    }
}

public class PlayerRef
{
    private Player playerRef;
    
    public PlayerRef()
    {}
    
    public PlayerRef(Player player)
    {
        playerRef = player;
    }
 }
 
public class Player
{
    public String name;
    
    public Player()
                   {}
    public Player(String name)
    {
        this.name = name;
    }
            
    public Player(Player p)
    {
        this.name = p.name;
    }
    
 

}
 
N

nillehammer

Gast
Instanzen gleich aber warum ?
In Java-Sprech heißt das allgemein, dass der Aufruf der Methode equals true zurück liefert. Weiß nicht, ob Dir das geläufig ist, deswegen sag ich's lieber nochmal. Das wird bei Deinem Code nie passieren. Auch der Vergleich mit '==' wird nie true werden. Insofern ist mir leider nicht klar, was Du mit: "egal was ich in p zuordne, hat x der gleiche wert.", meinst. Könntest Du das etwas näher erläutern?
 

Marco13

Top Contributor
In PlayerRef ist eine Referenz auf dasSELBE Player-Objekt gespeichert, wie das, das unter dem Namen 'p' bekannt ist. Wenn man 'p.name' einen neuen String zuweist, dann ist das eben der neue String (auch wenn dasSELBE Player-Objekt nochmal in der PlayerRef liegt).
 

njans

Top Contributor
Also
Java:
 public void ObjTest()
    {
        p.name = "Lukas";
 
        System.out.println("p :" + p);
        System.out.println("x :" + x);
        
        p.name = "Pablo";
 
        System.out.println("p :" + p);
        System.out.println("x :" + x);
    }

Diese Ausgabe ist so, wie dein Code ist unsinnig. Wenn du nicht die toString() Methode von Player und PlayerRef überschreibst kriegst du da immer nur KlassenName@Adresse raus. Das sagt dir aber gar nichts, über den eigentlichen Zustand des Objektes (Belegung der Variablen).
Außerdem hält der PlayerRef eine Referenz auf den Player. Wenn du dann an dem Player den Namen änderst, dann passiert das auf dem Player p.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Was machen mit nicht mehr verwendeten Instanzen ? Java Basics - Anfänger-Themen 18
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
M Alle Instanzen einer Klasse ansprechen Java Basics - Anfänger-Themen 4
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
Q OOP Mehrere Instanzen auf ein Feld Java Basics - Anfänger-Themen 13
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
S Direkt Instanzen anlegen Java Basics - Anfänger-Themen 1
D Instanzen durch Methode Java Basics - Anfänger-Themen 14
W Zugriff auf Instanzen von Klassen Java Basics - Anfänger-Themen 8
S aus Text Datei Instanzen erzeugen, so richtig? Java Basics - Anfänger-Themen 4
O Liste aller Instanzen einer Klasse Java Basics - Anfänger-Themen 18
H Klassen Instanzen mit anderen Klassen erzeugen Java Basics - Anfänger-Themen 5
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
B Enum: Instanzen Java Basics - Anfänger-Themen 10
M Instanzen vergleichen? Java Basics - Anfänger-Themen 12
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
W Instanzen, Klassen Java Basics - Anfänger-Themen 2
C Vectorarrays und Instanzen Java Basics - Anfänger-Themen 10
S alle instanzen einer klasse löschen Java Basics - Anfänger-Themen 18
C OOP Instanzen ansprechen Java Basics - Anfänger-Themen 3
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
B Zugriff auf Variablen in nicht bekannten Instanzen Java Basics - Anfänger-Themen 6
R mit klassen-instanzen arbeiten in packages Java Basics - Anfänger-Themen 10
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
W mehrere (numerierte) Instanzen erzeugen Java Basics - Anfänger-Themen 3
M Dynamisch Instanzen erstellen. Java Basics - Anfänger-Themen 4
N Instanzen von beliebigen Klassen aus dem Filesystem erzeugen Java Basics - Anfänger-Themen 7
M Problem mit Instanzen von JLabel Java Basics - Anfänger-Themen 4
E Vermeiden,dass mehrere Instanzen eines Java-Programms laufen Java Basics - Anfänger-Themen 2
V mehrere Instanzen gleicher Name möglich? Java Basics - Anfänger-Themen 3
E instanzen von Klassen erzeugen Java Basics - Anfänger-Themen 2
H Instanzen erzeugen und Methoden aufrufen Java Basics - Anfänger-Themen 5
L verschiedene JPanel-Instanzen erstellen Java Basics - Anfänger-Themen 8
K Eindeutige Instanzen von einem Objekt Java Basics - Anfänger-Themen 13
T Wo Daten ablegen für mehrere Servlet-Instanzen? Java Basics - Anfänger-Themen 2
G Instanzen in einem Feld erzeugen Java Basics - Anfänger-Themen 9
J Instanzen dynamisch erzeugen Java Basics - Anfänger-Themen 8
T Instanzen von abstrakten Klassen? Java Basics - Anfänger-Themen 14
D Instanzen einer Klasse Java Basics - Anfänger-Themen 6
G Speicherung von Referenzen auf Instanzen Java Basics - Anfänger-Themen 5
G alle Instanzen einer Klasse serialisieren Java Basics - Anfänger-Themen 4
Silver-Blue mehrere Instanzen einer Klasse, trotz Random immer das Selbe Java Basics - Anfänger-Themen 7
W Instanzen herunterzählen Java Basics - Anfänger-Themen 7
G Instanzen und Referenzen Java Basics - Anfänger-Themen 5
S Instanzen Java Basics - Anfänger-Themen 4
G wenn auch schon oft gefragt (Konstruktor , Instanzen , usw) Java Basics - Anfänger-Themen 6
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
S Arbeitsfeld in gleich große Bereiche einteilen Java Basics - Anfänger-Themen 2
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
S Groß- und Kleinbuchstaben gleich behandeln Java Basics - Anfänger-Themen 3
F String length nicht gleich der Ausgabe Java Basics - Anfänger-Themen 10
J JTable Wert gleich überschreiben Java Basics - Anfänger-Themen 6
P OOP Testen ob 2 Strings gleich sind Java Basics - Anfänger-Themen 8
F Doppeltes Gleich? Java Basics - Anfänger-Themen 8
GadgetSofa .txt Datei erstellen und gleich wieder Löschen? Java Basics - Anfänger-Themen 12
J Klassen Warum ist (a.equals(b)) gleich (a==b)? Java Basics - Anfänger-Themen 13
B Threads Geschwindigkeit der Befehle auf verschiedenen PCs gleich machen Java Basics - Anfänger-Themen 3
O Objekte gleich oder verschieden? Java Basics - Anfänger-Themen 14
D Frame schließt gleich alle Frames Java Basics - Anfänger-Themen 5
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
turmaline String teilen in gleich große strings Java Basics - Anfänger-Themen 15
D Strings sind ungleich obwohl sie in der Ausgabe gleich sind Java Basics - Anfänger-Themen 10
B Methoden Mein erstes Programm - und gleich Probleme Java Basics - Anfänger-Themen 6
D X Werte in ArrayList von Point Objekte alle gleich ? Java Basics - Anfänger-Themen 11
D Warum ist int a = 3*2+1*3; gleich 9 und nicht gleich 27 Java Basics - Anfänger-Themen 4
F While Schleife ausführen, wenn String gleich ist. Java Basics - Anfänger-Themen 2
M Problem mit größer oder gleich >= Java Basics - Anfänger-Themen 8
lumo warum double nicht gleich double ist??? Java Basics - Anfänger-Themen 5
feuervogel Datentypen Zwei Sets sind gleich, aber dann doch nicht Java Basics - Anfänger-Themen 9
T Border Layout alle mittleren felder gleich groß Java Basics - Anfänger-Themen 3
A [gelöst]Zwei Ausgaben, die eigentlich gleich sein sollten Java Basics - Anfänger-Themen 9
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
-horn- Mathe: Variable gleich Infinity, wie mit if rausfiltern? Java Basics - Anfänger-Themen 9
J Java plus exe gleich Java Basics - Anfänger-Themen 6
D Inhalt eines Dialogfeldes wird nicht gleich angezeigt? Java Basics - Anfänger-Themen 6
U "gleich gleich" oder equals Java Basics - Anfänger-Themen 9
M Variablennamen als Parameter gleich Var. als Klassenvariable Java Basics - Anfänger-Themen 2
N long geteilt durch long gleich null ? Java Basics - Anfänger-Themen 8
G testen ob int gleich null Java Basics - Anfänger-Themen 15
G int gleich long ? Java Basics - Anfänger-Themen 2
J JLabel gleich in einer Schriftfarbe anzeigen Java Basics - Anfänger-Themen 4
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben