I thought inner classes could access the outer class variables/methods?

前端 未结 5 1142
后悔当初
后悔当初 2020-12-09 10:18

I did read a number of topics discussing inner classes, and i was under the impression that an inner class has access to the variables and methods of the enclosing class. In

5条回答
  •  有刺的猬
    2020-12-09 10:50

    An Non-static inner class has an implicit reference to the OuterClass.....

    Try it out like this.....

    class OuterClass {
    
        String a = "A";
        String b = "B";
        String c = "C";
    
        class InnerClass {
    
                String x = a;    // Directly uses the instance variable a from Outer class
    
    
        }
    
        public static class StaticInnerClass {
            int x;
        }
    
        public String stringConCat() {
            return a + b + c;
    
        }
    }
    
    public class TestStatic {
    
        public static void main(String args[]) {
    
            OuterClass.StaticInnerClass staticClass = new OuterClass.StaticInnerClass();
            OuterClass outer = new OuterClass();
            OuterClass.InnerClass inner = outer.new InnerClass();
    
            System.out.println(inner.x);
    
        }
    }
    

提交回复
热议问题