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

前端 未结 5 1161
后悔当初
后悔当初 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:38

    The inner class can access the outer class methods and properties through its own methods. Look at the following code:

    class OuterClass {
    
        String a = "A";
        String b = "B";
        String c = "C";
    
        class InnerClass{
            int x;
            public String getA(){
                return a; // access the variable a from outer class
            }
        }
    
        public static class StaticInnerClass{
            int x;
        }
    
        public String stringConCat(){
            return a + b + c;    
        }
    }
    
    
    public class Test{
    
        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.getA()); // This will print "A"
        }
    }
    

提交回复
热议问题