1.接口
1.1接口的定義
定義接口的關鍵字:interface
定義接口的格式:
public interface 接口名? extends 接口,... {
//定義常量(常量名Java的命名規(guī)則要求是每一個字母都要大寫)
public static final 數據類型 常量名 = 值;
//定義抽象方法
public abstract 返回值類型? 方法名(數據類型 參數名,...);
}
1.2接口與類的區(qū)別:
1) 接口中只能定義抽象方法,這些方法默認為 public abstract 的,因而在聲明方法時可以省略這些修飾符。試圖在接口中定義實例變量、非抽象的實例方法及靜態(tài)方法,都是非法的。
2) 接口中沒有構造方法,不能被實例化。
3) 一個接口不實現另一個接口,但可以繼承多個其他接口。接口的多繼承特點彌補了類的單繼承。
4)接口只有一種訪問修飾符就是public,默認提供的關鍵字是public、static、final、abstract。
1.3接口的作用:
1. 需要實現多態(tài)
2. 要實現的方法(功能)不是當前類族的必要(屬性).
3. 要為不同類族的多個類實現同樣的方法(功能).
2.抽象類
抽象類的定義
定義抽象的關鍵字abstract class
public abstract class Shape {
//可以定義類所有的內容
//可以定義接口中所有的內容
}
抽象類當做是接口和類的集合。
抽象類不能實例化對象。
3.事件監(jiān)聽機制
1.事件源對象:接收動作的組件對象
有哪些可以成為事件源對象?? 所有的容器組件和元素組件
界面上會有很多的組件,那么如何確定誰是事件源對象?
根據你的動作來決定,你的動作發(fā)生在哪一個組件上,那么該組件就是事件源對象。
2.事件監(jiān)聽方法:監(jiān)聽事件源對象上是否有動作發(fā)生
addActionListener(ActionListener l);
監(jiān)聽類似按鈕組件上是否有鼠標點擊動作的方法或者是監(jiān)聽類似輸入框組件上是否
有鍵盤的回車動作的方法,如果有,則捕獲動作以及相關的信息,交給
ActionLIstener參數對象進行處理。
addKeyListener(KeyListener l);
監(jiān)聽事件源對象上是否有鍵盤按鍵按下,釋放和敲擊動作,如果有則
捕獲動作以及相關的信息,交給KeyListener參數對象進行處理。
addMouseListener(MouseListener l);
監(jiān)聽事件源對象上是否有鼠標的進入、按下、釋放、點擊和離開動作,如果有則
捕獲動作以及相關的信息,交給MouseListener參數對象進行處理。
addMouseMotionListener(MouseMotionListener l);
監(jiān)聽事件源對象上是否有鼠標的移動和拖動動作,如果有則
捕獲動作以及相關的信息,交給MouseMotionListener參數對象進行處理。
addFocusListener(FocusListener l);
監(jiān)聽事件源對象上是否有組件獲得或失去鍵盤焦點動作,如果有則
捕獲動作以及相關的信息,交給FocusListener參數對象進行處理。
addChangeListener(ChangeListener l);
addPopupMenuListener(PopupMenuListener l);
3.事件接口(事件處理類):事件監(jiān)聽方法就會將動作交給事件處理類來來處理
ActionListener 處理按鈕的點擊動作和輸入框的回車動作
KeyListener 處理鍵盤按鍵按下,釋放和敲擊動作
MouseListener 處理鼠標按下、釋放、點擊、進入和離開動作
MouseMotionListener 處理鼠標移動和拖動動作
FocusListener 處理獲取焦點和失去焦點的動作
ChangeListener 處理組件狀態(tài)改變的動作
PopupMenuListener 處理彈出菜單可見、不可見、取消的動作