0%

Java 内部类的访问(类中类)

public class Main {

    public static void main(String[] args) throws UnsupportedEncodingException {
        Outer outer=new Outer();//实例化外部类
        Outer.Inner inner=outer.new Inner();//通过外部类的实例,得到内部类的实例
        inner.run();//第一种访问内部类的方法
        outer.run();//第二种通过外部类的方法访问内部类的方法 
        Outer.Inner inner2=outer.getInner();//通过外部类的getInner方法得到内部类实例
        inner2.run();//第三方访问方法
    }

}
class Outer{
    private int a=10;
    class Inner{
        private int a=20;
        public void run(){
            int a=30;
            System.out.println(a);
            System.out.println(this.a);
            System.out.println(Outer.this.a);
            
        }
    }
    void run(){//通过外部类的方法访问内部类方法
        Inner inner=new Inner();
        inner.run();
    }
    Inner getInner(){//返回内部类给对象
        Inner inner=new Inner();
        return inner;
        
    }
}