代码改变世界

接口和事件机制

2016-09-02 21:38  Jason林  阅读(748)  评论(0编辑  收藏  举报

接口:

在java程序设计语言中,与类不同,接口的定义需要用interface。

接口是对类的一组需求描述,这些类要按照接口描述的同意格式进行定义。

这就是说,任何实现Ball接口的类都需要包含play方法。

下面是Ball接口的代码:

1 public interface Ball{
2   void play();          
3 }

下面是FootBall类的代码:

1 public class Football implements Ball{
2    public void play{
3      System.out.println("踢足球");
4    }
5  }

接口的实现使用implemets关键字,与类的extends不同。

在接口声明中没有将play方法声明为public,这是因为接口中的所有方法都自动地是public。不过,在实现接口的时候,必须把方法声明为public。

在接口中还可以定义常量。接口中的属性默认是,且只能是public static final。

上面的接口只有一个方法,而有些接口可能包含多个方法。接口本身不能实例化,也不能在接口中实现方法。

接口与接口之间也是存在继承关系的。

下面是Sports接口的代码:

1 public interface Sports{
2   void play();
3   void getScore();
4 }

 

 Ball接口继承Sports接口:

public interface Ball extends Sports{
  void play();
}

 

Football类实现Ball接口:

public class Football implements Ball{
  public void play(){
    System.out.println("踢足球");
  }
  public void getScore(){
    System.out.println("得分");
  }
}

 

类必须要实现(重写)接口中所有的抽象方法,接口如果有父接口,那么父接口中的抽象方法也必须要实现(重写)。一个类只可以继承一个父类,但可以实现多个接口。

 

事件机制:

 写好一个界面后,我们就会对界面进行一些操作,比如点击按钮。

点击按钮称为一个事件,而这个按钮称为事件源对象。实际上,所有的容器组件和元素组件类的对象都可以成为事件源对象。

事件源对象上有动作产生时,需要对这一动作进行监听。这时就需要监听方法:addActionListener(ActionListener listener)。

按钮组件上的鼠标点击动作,输入框组件上的回车动作都可使用addActionListener(ActionListener listener)这一监听方法。

比如:

ActionListener listener = new  . . . ;
JButton button = new JButton("login");
button.addActionListener(listener);

 

为了实现ActionListener接口,监听器类必须有一个被称为actionPerformed的方法,该方法接收一个ActionEvent对象参数。

class MyListener implements ActionListener{
  ...
  public void actionPerformed(ActionEvent e){
     //点击按钮做出的反应。
    ...
  }
}

 

 只要点击按钮,JButton对象就会创建一个ActionEvent对象,然后调用MyListener.actionPerformed(e)传递事件对象。

 这样一来,只要点击按钮,按钮就会调用所有监听器类的actionPerformed方法,从而对该事件源对象上的动作做出反应。