内部类的class文件命名是:主类+$+内部类名
匿名类的class文件命名是:主类+$+(1,2,3....)
例如:QualityMonitorDiagramAction.java
如果QualityMonitorDiagramAction类中定义了内部类QmdSub,则会在QualityMonitorDiagramAction.class的同级目录下产生一个QualityMonitorDiagramAction$QmdSub.class的文件。
如果QualityMonitorDiagramAction类中定义了匿名类,则会在QualityMonitorDiagramAction.class的同级目录下产生一个QualityMonitorDiagramAction$1.class的文件。
内部类(inner class):
class Outer{
private int index = 10;
class Inner {
private int index = 20;
void print(){
int index = 30;
System.out.println(this); // the object created from the Inner
System.out.println(Outer.this); // the object created from the Outer
System.out.println(index); // output is 30
System.out.println(this.index); // output is 20
System.out.println(Outer.this.index); // output is 10
}
}
void print() {
Inner inner = new Inner(); //得到内部类的引用
inner.print();
}
}
class Test {
public static void main(String[] args) {
Outer outer = new Outer();
outer.print();
}
}
匿名类:new Xxx({在这里进行操作即可});
new Test({System.out.println("你好!");});
匿名内部类:new Xxx(){} 或者 new Xxx(String param){}
Timer timer = new Timer(); //实例化Timer类
timer.schedule(new TimerTask(){
public void run(){
//System.out.println("退出");
this.cancel();
}
}, 100000); //1000毫秒=1秒