这里的所谓“成员实例”是具体的两个方法add和sub的实现。

  又

IExample ae = new IExample(){
    public int add(int x,int y)
    {
     return x+y;
    }
    public int sub(int x,int y)
    {
     return x-y;
    }
};
int s = ae.add(4,2);
int t = ae.sub(4,2);

  很神奇吧!

  三、总结

  实际上这种方法在一般情况下用得比较少,主要应用于事件处理问题当中。并且主要使用接口。

  上面的形式是本人在学习java的事件处理编程时遇到一个疑问:为什么java的事件监听者注册时使用的形式是这样的:

//Person是本人设计的一个含有事件处理的类,PersonListener是个接口--监听者接口
Person  p = new Person("Tong",53);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//创建事件监听者接口的实例并注册
p.addPersonListener( new PersonListener(){
      public void OnNameChanged(PersonEventObject e)
      {
           //自定义事件处理代码
           System.out.println("Name   :"+((Person)(e.getSource())).getName());
      }
      public void OnAgeChanged(PersonEventObject e)
     {
           //自定义事件处理代码
           System.out.println("Name   :"+((Person)(e.getSource())).getName());
 
      }
});
//////////////////////////////////////////////////////////////////////////////////////////////////

  将上述p.addPersonListener(...)分成两个步骤一清二楚了:

PersonListener pl = new PersonListener(){
     public void OnNameChanged(PersonEventObject e)
     {
         //自定义事件处理代码
         System.out.println("Name   :"+((Person)(e.getSource())).getName());
     }
     public void OnAgeChanged(PersonEventObject e)
     {
         //自定义事件处理代码
         System.out.println("Name   :"+((Person)(e.getSource())).getName());
     }
};
p.addPersonListener(pl);

  看一看,是我们上面讨论的问题。

  通过这个例子,希望许多初学java的人会有所得。