Java語言中接口和異常處理的總結

1、接口程序員

  一、接口定義編程

     接口是一系列方法的聲明,是一些抽象的集合;數組

     接口只有抽象方法沒有方法的實現,且默認就是public權限;學習

     接口並非類,編寫接口的方式和類很類似,可是它們屬於不一樣的概念;spa

     類描述對象的屬性和方法,接口則包含類要實現的方法;設計

     接口就是特殊的抽象類,即全部方法都是抽象方法的抽象類就是Java中的接口(interface);指針

     接口沒法被實例化,可是能夠被實現。orm

  二、接口的基本格式對象

  【修飾符】interface 接口名 【extends 父接口名列表】繼承

  【public】【static】【final】常量;

  【public】【abstract】方法;

  接口名必選參數,用於指定接口的名稱,接口名必須是合法的Java標識符。通常狀況下,要求首字母大寫;

  接口中沒有變量,只能有public static final修飾的靜態常量。三個修飾符能夠省略;

2、類接口的實現

  一、特色

     類最多隻能繼承一個類,即單繼承,而一個類卻能夠同時實現多個接口,實現類須要覆蓋全部接口中的全部抽象方法,不然該類也必須聲明爲抽象類。

      接口是抽象的,接口中沒有任何具體方法和變量,因此接口不能進行實例化;

      類使用implements關鍵字實現接口。在類聲明中,Implements關鍵字放在class聲明後面。

  二、實現接口的基本格式

     [修飾符] class <類名> [extends 父類名] [implements 接口列表]{ }

     implements 接口列表:可選參數,用於指定該類實現的是哪些接口。當使用implements關鍵字時,接口列表爲必選參數。當接口列表中存在多個接口名時,各個接口名之間使用逗號分隔。

   三、重寫接口中聲明的方法時,須要注意如下規則:

  • 類在實現接口的方法時,不能拋出強制性異常,只能在接口中,或者繼承接口的抽象類中拋出該強制性異常。
  • 類在重寫方法時要保持一致的方法名,而且應該保持相同或者相兼容的返回值類型。
  • 若是實現接口的類是抽象類,那麼就不必實現該接口的方法。

  四、在實現接口的時候,也要注意一些規則:

  • 一個能夠同時實現多個接口
  • 一個只能繼承一個單繼承),可是能實現多個接口多重繼承)。
  • 一個接口能繼承另外一個接口,這和類之間的繼承比較類似使用關鍵字extends,不要錯用成implements。

     例如:  Interface3 extends ,Interface0, Interface1, interface……

3、接口與抽象類的區別

  對比圖: 

 

Abstract class

Interface

屬性

不用限制

靜態常量

構造方法

無關緊要

沒有

普通方法

能夠有具體方法

必須是抽象方法

子類

單一繼承

多重實現

 

     一、抽象類中的方法能夠有方法體,就是能實現方法的具體功能,可是接口中的方法不行;

  二、 抽象類中的成員變量能夠是各類類型的,而接口中的成員變量只能是 public static final 類型的; 

  三、接口中不能含有靜態代碼塊以及靜態方法(用 static 修飾的方法),而抽象類是能夠有靜態代碼塊和靜態方法

  四、一個類只能繼承一個抽象類,而一個類卻能夠實現多個接口。

4、面向接口編程

  一、接口是設計層面的概念,每每由設計師設計,將定義與實現分離

   程序員實現接口,實現具體方法

  常見的類設計結構:

            接口

       子接口      抽象類

       具體類

  二、面向接口編程

    面向接口編程和麪向對象編程並非平級的,它並非比面向對象編程更先進的一種獨立的編程思想,而是附屬於面向對象思想體系,屬於其一部分;

    或者說,它是面向對象編程體系中的思想精髓之一;

    面向接口編程的意思是指在面向對象的系統中全部的類或者模塊之間的交互是由接口完成的。

總結:

1.接口能夠多繼承

2.接口的方法聲明必須是 public abstract 即使不寫默認也是

3.接口裏面不能包含方法具體實現

4.類實繼承接口必須實現接口裏申明的所有方法,除非該類是抽象類

5.類裏面能夠聲明 public static final 修飾的變量

6.接口不能被實例化,可是能夠被實現類建立

5、異常處理

  一、異常概念

     異常是不正常的事件,不是錯誤;

     異常是指程序運行的過程當中,發生某些意外的事情,好比10除以0, 文件不存在等

  二、錯誤

     錯誤是很難處理的,好比內存溢出等,不可以經過異常處理機制來解決;

     異常是程序中發生的不正常事件流,經過處理程序依然能夠運行下去。可是錯誤是沒法控制的,程序確定要中斷.

  三、異常體系

     Throwable類有兩個直接子類:Exception類、Error類。

    Error表示錯誤,多是編譯期錯誤或者系統錯誤,每每程序中並不處理。

    Exception表示異常,是全部異常類的父類,是程序員所關心的。

  四、異常種類

     異常分爲運行期異常和編譯期異常兩種

    運行期異常:程序運行時拋除的異常,全部RuntimeException的子類都是運行期異常

    -數學異常

    -空指針異常

    -數組下標越界

    -................

    編譯期異常(Checked Exception):除去運行期的異常都是編譯期異常,也稱爲檢測異常

    -IOException

    -SQLException

    -...............

6、捕獲異常

  一、使用 try 和 catch 關鍵字能夠捕獲異常。try/catch 代碼塊放在異常可能發生的地方。

try/catch代碼塊中的代碼稱爲保護代碼,使用 try/catch 的語法以下:

  try{

    可能會發生異常的代碼

   }catch(異常類型 引用名){

       異常處理代碼

   }finally{

      必須執行代碼

  }

  運行流程(無異常狀況)

   try{

    System.out.println("try");

   }catch(Exception e) {

      System.out.println("Exception");

  } finally{

      System.out.println("Finally");

   }

   運行流程(有異常狀況)

   try{   

    String demo = null; demo.split("a");

    System.out.println("try");

   }catch(Exception e) {

    System.out.println("Exception");

    e.printStackTrace();

   } finally{

      System.out.println("Finally");

   }

   二、finally與return

     在try中沒有異常的狀況下try、catch、finally的執行順序 try --- finally ;

     若是try中有異常,執行順序是try --- catch --- finally;

     若是try中沒有異常而且try中有return這時候正常執行順序是try ---- finally --- return;

     若是try中有異常而且try中有return這時候正常執行順序是try----catch---finally--- return;

     若是try有異常,相應catch中有return,順序是try---catch---finally---return 。

7、拋出異常

  throw關鍵字

  一、  --關鍵字throw用於顯式拋出異常

       --拋除異常後處理

    --使用try-catch捕獲異常

    --使用throws聲明異常

  語法

    throw new 異常類構造方法;

    例如:throw new Exception();

  二、用於方法聲明處,指出方法引起的異常。

     能夠聲明多種異常類型,用逗號分開便可。

     示例 public void test throws 異常1,異常2,異常3{ }

  三、層層拋出異常

   catch語句中,處理異常後,再次用throw拋出該異常對象

       繼續拋出異常的做用:使得調用該方法的方法,可以再一次捕獲並處理異常

   四、總結

   --throw用於方法體中,用來拋出一個實際的異常對象,使用throw後,要麼使用try catch捕獲異常,要麼使用throws聲明異常;

   --throws用於方法聲明處,用來聲明該方法可能發生的異常類型,能夠是多個異常類型,用來強制調用該方法時處理這些異常;

   --抽象方法也可使用throws,因此說並非有throw纔有throws;

   --若是使用throw關鍵字拋異常,必定不要使用Exception,不能很好標記異常類型;

   --若是throw要拋出與業務邏輯有關的異常,須要使用自定義異常類,後續學習。

8、自定義異常

  一、自定義異常就是本身定義的異常類,也就是API中的標準異常類的直接或間接的子類

  做用:用自定義異常標記業務邏輯的異常,避免與標準異常混淆

  基本語法 public class 異常類名 extends Exception{

        public 異常類名(String msg){

           super(msg);

        }

       } 

  自定義異常類中每每不寫其餘方法,只重載須要使用的構造方法。

  二、在程序中使用自定義異常大體能夠分爲如下幾步

   --建立自定義異常類;

   --在方法中經過throw 關鍵字拋出自定義異常;

   --若是在當前拋出異常的方法中處理異常,可使用try-catch語句捕獲並處理,不然在方法的聲明處經過throws關鍵字聲明該異常;

 

   --調用throws聲明該異常的方法時,使用try catch捕獲自定義的異常類型,並在catch中進行處理。

相關文章
相關標籤/搜索