Sichtbarkeit von Variablen.
-
Hallo ich habe mal eine Frage. Beschäftige mich gerade mit Java und habe gelesen, dass man lokale Variablen nicht verdecken darf , Klassen- oder Instanzvariablen hingegen schon. Ich habe das mal ausprobiert. mit den lokalen Variablen klappt das gut. Nur bei Klassen- oder Instanzvariablen geht das nicht habe das mal am Bsp. probiert.
public static void main(String arg[]){ Player a = new Player(); { Player a = new Player(); } }
er meckert immer rum, dass a schon existiert. Ich habe das aber so verstanden, dass man das äußere a verdecken kann.
Hier der Link zur Erklärung : http://www.addison-wesley.de/Service/Krueger/kap04003.htm
-
Fischkopf2009 schrieb:
Ich habe das aber so verstanden, dass man das äußere a verdecken kann.
Beide a sind hier lokale Variablen.
-
WTF Nimm akutelle Quellen
http://www.javabuch.de/
-
Okay Dankeschöne. Wäre dass denn so ein Fall :
class Player { public String name; public void machWas(){ String name; name = "1233"; } }
-
String name ist eine Deklaration
name = ".." ist eine Zuweisung
-
Und was meinst du damit
-
axo Sry, du hast deine mit der lokale Variable die Membervariable überdeckt und änderst die Lokale, mit this.name kommst du an die Membervariable.
-
Hiho,
man kann nur Attribute verdecken, lokale Variablen/Objekte jedoch nicht.
Zeus schrieb:
String name ist eine Deklaration
name = ".." ist eine ZuweisungDas stimmt aber nicht.
String name; // Hiermit definierst du eine Reference (vom Typ String). name = "hallo"; // Hiermit definierst du ein Objekt (vom Typ String), und lässt dann die Reference darauf verweisen.