1.匿名内部类:匿名内部类的结构比较奇特,如下:
package test;
public class Parcle{
public Wrapping getWrapping(int x){
return new Wrapping(x){
private int y;
public int value(){
return super.value();
}
};
}
}
class Wrapping{
int x;
public Wrapping(int x){
this.x=x;
}
public int value(){
return x;
}
}
其中的getWrapping方法中竟然会有
return new Wrapping(x){
private int y;
public int value(){
return super.value();
}
};
这种奇特的结构。其实,这个意思是这样的:这里并不是定义了一个Wrapping类,而是定义了一个继承自Wrapping的子类,相当于这样:
package test;
public class Parcle{
class myWrapping extends Wrapping{
private int y;
public myWrapping(int y) {
super(y);
this.y=y;
}
public int value(){
return super.value();
}
}
public Wrapping getWrapping(int x){
return new myWrapping(10);
}
}
class Wrapping{
int x;
public Wrapping(int x){
this.x=x;
}
public int value(){
return x;
}
}