内部类并不能访问外部类所定义的对象。除非内部类有外部类的对象的引用。
而匿名类不可能有外部类的引用。因此监听器可以写一个内部类,并在初始化的时候将外部类实例的引用传进去。
还有一个更好的办法是
public class Exame extends Applet implements MouseMotionListener然后:
d.addMouseMotionListener(this);是否看懂?
而匿名类不可能有外部类的引用。因此监听器可以写一个内部类,并在初始化的时候将外部类实例的引用传进去。
还有一个更好的办法是
public class Exame extends Applet implements MouseMotionListener然后:
d.addMouseMotionListener(this);是否看懂?
还可以使用函数阿!等等方法。
public class A{
class B{
A a;
B(A a){
this.a = a;
}
}
}
=================
不过你的例子中,最好使用我建议的方法。简单,不用增加多余的类!
A a= new A();
B b = new B(a);
>而匿名类不可能有外部类的引用。
这样说是不对的。对baozi3026 (星尘)的问题,
可以使d成为class Exame的成员,然后在匿名内部类中这样引用:
Exame.this.d