1.2.5 匿名内部类 如下所示代码为定义一个匿名内部类:匿名内部类通常用在Java的事件处理上
0 S! h/ C, v- a; a- ?- { import java.applet.*;
* H; e+ Y }# k import java.awt.event.*;
, u! k8 O& y* U h public class AnonymousInnerClassDemo extends Applet{& R# _& F) u: s0 w; \& P0 c
public void init(){% T3 r: j9 m2 R q4 G
addMouseListener(new MouseAdapter(){
+ S; n! y5 W' b; d! H( A public void mousePressed(MouseEvent me){4 Z9 N' [: F' n% ^3 k, H
showStatus("Mouse Pressed!");
/ |) |: c& V: x1 c+ X0 Y3 c }6 D) X. k+ z! ?3 L; w& C
})
! ?& @8 }) \1 v+ m }* }, |$ \8 {6 V" m4 l
public void showStatus(String str){
: ?8 q+ O& t; d$ u System.out.println(str);
" S) g- r5 z+ K }/ l9 W8 Z7 ^) Z3 g: j
}( z" M0 g! B) Q( \
在 上面的例子中,方法addMouseListener接受一个对象型的参数表达式,于是,在参数里,我们定义了一个匿名内部类这个类是一个 MouseAdapter类型的类,同时在这个类中定义了一个继承的方法mousePressed,整个类做为一个参数。这个类没有名称,但是当执行这个 表达式时它被自动实例化。同时因为,这个匿名内部类是定义在AnonymousInnerClassDemo 类内部的,所以它可以访问它的方法 showStatus。这同前面的内部类是一致的。 |