成员内部类
public class OuterClass {
public String str;
public static void main(String args[]) {
OuterClass.StaticInnerClass staicInnerClass = new OuterClass.StaticInnerClass();
System.out.println(staicInnerClass);
OuterClass outer = new OuterClass();
OuterClass.InnerClass innerClass = outer.new InnerClass();
System.out.println(innerClass);
innerClass.method("");
}
static class StaticInnerClass{
@Override
public String toString() {
return "StaticInnerClass []";
}
}
class InnerClass{
String str;
@Override
public String toString() {
return "InnerClass []";
}
public void method(String str) {
System.out.println(str);
System.out.println(this.str);
System.out.println(OuterClass.this.str);
}
}
}
局部内部类
public class OuterClass {
public void method() {
final int i = 1;
class LocalInner{
public void show() {
System.out.println(i);
}
}
}
}