1、成员内部类
public class Outer {
private int x;
private class Inner {
private int x = 9;
public void doit(int x) {
x++; // 形参x
this.x++; // 内部类的x
Outer.this.x++; // 外部类的x;在内部类中,Outer.this表示外部类的引用
}
}
public static void main(String[] args) {
Outer.Inner inner = new Outer().new Inner();// 内部类实例化对象
}
}
2、局部内部类
方法内部定义的类,该类只限定于方法内部。
public class PartInner {
public void doSomething() {
class Apple {
void sell() {
System.out.println("Sell Apple");
}
}
Apple apple = new Apple();
apple.sell();
}
public static void main(String[] args) {
PartInner inner = new PartInner();
inner.doSomething();
}
}
3、匿名内部类
没有类名,直接用对象来代替
interface A {
void doSomething();
}
public class Anonymous {
public static void main(String[] args) {
A a = new A() {
@Override
public void doSomething() {
System.out.println("Do it");
}
};
}
}