public class ShadowTest
{
public int x = 0;
class FirstLevel
{
{ // here not able to understand why it allows.
x = 1;
}
void methodInFirstLevel()
{
System.out.println("x = " + x);
// System.out.println("this.x = " + this.x);
System.out.println("ShadowTest.this.x = " + ShadowTest.this.x);
}
}
public static void main(String... args)
{
ShadowTest st = new ShadowTest();
ShadowTest.FirstLevel fl = st.new FirstLevel();
fl.methodInFirstLevel();
}
}
Ich bin nicht klar warum, ohne Klammern, es funktioniert nicht und was die Bedeutung der Klammern ist? Bitte erläutern Sie ausführlich.Funktion dieses InnerClass-Konzepts
Werfen Sie einen Blick auf [diese Frage] (http://stackoverflow.com/questions/1563030/anonymous-code-blocks-in-java). – blafasel
"Es funktioniert nicht" ist keine Problembeschreibung. In welcher * spezifischen * Weise funktioniert es nicht? – Raedwald