有成员内部类,静态内部类,匿名内部类,局部内部类
成员内部类
public class OuterClass { private String name; private static String desc; class InnerClass{ //成员内部类中不能存在 静态属性和方法 static final int id=0; void tell(){ System.out.println(name+desc); } } public InnerClass getInnerClass(){ return new InnerClass(); } public static void main(String[] args) { OuterClass out=new OuterClass(); InnerClass inn=out.new InnerClass(); inn.tell(); } }
静态内部类
public class OuterClass2 { private String name; private static String desc; static class InnerClass{ //静态内部类只能访问外部类的静态方法 private static int id; private static void syso() { System.out.println(desc); } private void tell() { System.out.println(desc); } } public static void main(String[] args) { OuterClass2 out=new OuterClass2(); OuterClass2.InnerClass.syso(); } }