简体   繁体   中英

Modifying Outer Class attribute in with Inner Class Java

I want to have inner classes inside of a main class. One attribute is innerClassId and I can't change it in the inner class. Code:

public class OuterClass {
    public static String innerClassId = "";
    
    public class InnerClass {
        innerClassId = "";
    }
}

It keeps saying "Syntax error, insert "ClassBody" to complete ClassDeclarationJava(1610612976)"

Here's a few variations of initialization:

public class OuterClass {
    
    public static String innerClassId = "one";
    
    public class InnerClass {
        
        {
            innerClassId = "two";
        }
        
        public InnerClass() {
            innerClassId = "three";
        }
        
        public InnerClass(int j) {
            //we'll ignore j here (but initializer code runs)
        }
        
        public InnerClass(String s) {
            innerClassId = s;
        }
    }
    
    public static void main (String[] args) {
        OuterClass oc = new OuterClass();
        System.out.println(OuterClass.innerClassId);
        InnerClass ic = new OuterClass().new InnerClass(0);
        System.out.println(OuterClass.innerClassId);
        ic = new OuterClass().new InnerClass();
        System.out.println(OuterClass.innerClassId);
        ic = new OuterClass().new InnerClass("four");
        System.out.println(OuterClass.innerClassId);
        
    }

}

Prints

one
two
three
four

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM