1. 程式人生 > 其它 >內部類、類與物件的關係、異常

內部類、類與物件的關係、異常

  • 接口裡的所有定義其實都是抽象的 public abstract(預設)
  • 直接寫 返回值型別 方法名(引數);
  • 寫法上介面就是interface修飾的類
  • 介面都需要實現類
  • 介面中定義的量都是常量即預設public static final
  • 抽象的思維 Java架構師
  • 介面不能被例項化,介面中沒有構造方法;
  • implements 可以實現多個介面中的方法

內部類

  • 內部類就是在一個類的內部定義一個類,比如,A類中定義了一個B類,那麼B類相對A類來說就稱為內部類,而相對B類來說就是外部類了。
  • 1.成員內部類;
  • 2.靜態內部類;
  • 3.區域性內部類;
  • 4.匿名內部類;

類與物件的關係

  • 類是一種抽象的資料型別,它是對某一類事物整體的描述與定義,但並不能代表某一個具體事物。
    • 動物、植物、手機、電腦.....
  • 物件是抽象概念的具體例項
    • 張三是人的一個具體例項,張三家裡的旺財就是狗的一個具體例項。
    • 能夠體現出特點,展現出共能的具體的例項,而不是一個抽象的概念

異常

  • 什麼是異常?

    • 軟體執行過程中,可能某個模組輸入不符合要求,檔案不存在或者格式不對,讀取資料,資料是空的,記憶體滿了,或者硬碟滿了.....
    • 以上這些異常問題,叫異常,英文是Exception,意思是例外
  • 指程式執行過程中出現的各種不期而至的各種狀況,如:檔案找不到,網路連線失敗、非法引數.......

  • 異常發生在程式執行期間,它影響了正常的程式執行流程。

  • 分類:

    • 檢查性異常:最初是使用者錯誤引起的異常,無法預見。
    • 異常在編譯時不能被簡單的忽略。
    • 執行時異常:可以被程式設計師避免的異常,與檢查性異常相反,執行時異常可以在編譯時被忽略。
    • 錯誤:錯誤不是異常,而是脫離程式設計師控制的問題。錯誤在程式碼中通常被忽略。
    • 當棧溢位時一個錯誤就發生了。編譯時查不到。
  • 異常處理框架

  • Java中把異常當作物件來處理,並定義一個基類java.lang.Throwable作為所有異常的超類。

  • Java API中已經定義了多種異常類,分為兩大類,錯誤和異常。

  • NullPointerExcetion空指標異常。

  • ArrayIndexOutOfBoundsException陣列下標越界異常。

  • Error類物件由Java虛擬機器生成並丟擲,大多數錯誤與程式碼編寫者所執行的操作無關。

    • VirtualMachineError虛擬機器執行錯誤:
    • 當jvm不載繼續執行操作所需記憶體資源的時候,將出現OutOfMenmoryError。
    • 這些異常發生時,Java虛擬機器一般會選擇執行緒終止
    • 還有發生虛擬機器試圖執行程式時,如類定義錯誤(NoClassDefFoundError)、連結錯誤(LinkageError)。
    • 這些錯誤是不可察的,因為它們在應用程式的控制和處理能力之外,而且絕大多數是程式執行時不允許出現的情況。
  • 異常處理機制

    • 丟擲異常
    • 捕獲異常
    • 關鍵字
      • try(試)、catch(捕獲)、finally(最終)、thorw、thows
  • 自定義異常

    • 使用Java內建的異常類可以描述在程式設計時出現的大部分異常情況,除此之外,使用者還可以自定義異常。
    • 使用者自定義異常類,只需要繼承大部分Exception類即可。
    • 在程式中使用自定義異常類,可以分為以下幾個步驟
      • 1.建立自定義異常類,
      • 2.在方法中通過throw關鍵字丟擲異常物件
      • 3.如果在當前丟擲的異常的方法中處理異常,可以使用try-catch語句捕獲異常並處理,
      • 否則在方法宣告處通過throws關鍵字指明要丟擲給方法呼叫者的異常,繼續進行下一步操作。
      • 4.在出現異常方法的呼叫者中捕獲並處理異常
  • 實際應用中的經驗總結

    • 處理執行時異常時,採用邏輯去合理規避同時輔助try-catch處理
    • 在多重catch快後面,可以加一個catch(Exception)來處理可能會被遺漏的異常
    • 對於不確定的程式碼也可以加上try-catch處理潛在異常
    • 儘量去處理潛在異常,要根據不同的業務需求和異常型別去決定
    • 儘量新增finally語句去釋放佔用的資源