首先我想弄清楚,你想知道的作用是指内部类,还是仅仅只匿名内部类和非匿名内部类的区别内部用处是class Outer extends A{
int x;
.....
class Inner extends B {
public void a() {
x++;
}
}
}Outer$Inner 这个内部类自己是B的子类,而不是Outer或者A的子类,这个Inner却拥有对x等Outer内部字段/方法的访问权。匿名不匿名的区别在于它们声明的方式,以及使用的次数。当然,匿名内部类也可以被多次使用,方式就是class Outer {
a.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {}
});
b.addActionListener(new Outer$1());
}
int x;
.....
class Inner extends B {
public void a() {
x++;
}
}
}Outer$Inner 这个内部类自己是B的子类,而不是Outer或者A的子类,这个Inner却拥有对x等Outer内部字段/方法的访问权。匿名不匿名的区别在于它们声明的方式,以及使用的次数。当然,匿名内部类也可以被多次使用,方式就是class Outer {
a.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {}
});
b.addActionListener(new Outer$1());
}
区别只是它们声明的方式,以及使用的次数?另外我觉得提高了封装性,因该不太对,因为你这个方法完全可以用private