package com.kk.innerClass; class Outer { private int index = 100; class Inner { int index=200; void print() { int index=300; //内部类中可以访问外部类的私有成员变量及方法 System.out.println(index); System.out.println(this.index); System.out.println(Outer.this.index); } } Inner getInner(){ { class Inner2{ //如果将内部类放在方法或语句块中,外部将不能实例化 } } return new Inner(); } Inner getInner(final int i){ class Inner3{ void getParameter(){ System.out.println(i); //在方法中定义的内部类,如果要访问方法中定义的本地变量或方法的参数,则变量必须被声明final。 } } return new Inner(); } void print() { Inner inner = new Inner(); inner.print(); } public static void main(String[] args) { Outer outer=new Outer(); outer.print(); Outer.Inner inner=outer.getInner(); inner.print(); //实例化内部类 Outer outer2=new Outer(); Outer.Inner inner2=outer2.new Inner(); inner2.print(); } }