你用过JBuilder么,里面很形象的。

解决方案 »

  1.   

    没用过。为什么
    import java.awt .*;
    import java.applet .*;
    import java.awt.event.* ;public class FuXuan extends Applet implements ItemListener {
             FuXuan fx=new FuXuan();
    public void init()
    {
    Checkbox one=new Checkbox("猫");
    Checkbox two= new Checkbox("狗",true); 
    Checkbox three=new Checkbox("兔",false);
    one.addItemListener(fx); 
    add(one);
    two.addItemListener(fx); 
    add(two);
    three.addItemListener(fx);
    add(three);
    }
    public void itemStateChanged(ItemEvent e)
    {
    }
    }
    会报错无穷?
      

  2.   

    实例化后的class FuXuan,也就是指向对象的reference,不过要upcast到ItemListener。
      

  3.   

    addItemListener方法中的参数是一个事件对象,而你是在你自身的类中实现了ItemListener这个接口,也就是说你将这个自身的类作为监听器对象。就要用这个this参数来引用这个事件对象。
      

  4.   

    这么说只要实现了ItemListener接口的类都要把自己的对象当addItemListener方法的对象了?
      为什么我上面的例子用类的实例替换this会有无数的报错呢?
      

  5.   

    很简单,你可以在FuXuan类内实例化自己吗?这是天大的笑话,在一个类内如果想引用自己,除了this,还会有什么啊?
      

  6.   

    /*
     * 报错无穷,我感觉是无限循环调用了FuXuan 类的构造函数。
     */
      

  7.   

    还有,引用自己的东西,应该不用表明this.的。
    写上的话,也许比较清晰吧。
      

  8.   

    引用自己的东西,不需要this.
    this一般在当要把自身的做为另外函数的参数的时候使用。
      

  9.   

    this.是个类。jbuild形象为窗体!
      

  10.   

    同意ervinlj的观点,this就是指引用本身的对象
    第一个程序是对的,三个this分别引用了对象本身的接口,即监听器
    第二个程序是错的,当该类实例化的时候会在实例化一个属于自己类的对象,如此反复,层出不穷,就象以前常遇到的死循环一样。
    不过,类本身实例化自己的例子不是没有,不过那是在这个类为主类含有main()函数的时候,在main()函数里实例化自己的对象。