1. 程式人生 > 其它 >溫故而知新:Java重溫第四天

溫故而知新:Java重溫第四天

Java複習第四天

static詳解

  • static為靜態。

  • 靜態變數對於類,所有物件(例項)所共享,可以直接使用類取呼叫

public class Main {
​
    public static void main(String[] args) {
        run();//因為是靜態的方法,所以可以直接呼叫
//        dong();//不是靜態的方法不能直接呼叫 會報錯。
        Main main = new Main();
        main.dong();//需要建立物件後才可以呼叫方法。
    }
    public static void run(){
        System.out.println("這是靜態的方法");
    }
    public void dong(){
        System.out.println("這是動態的方法");
    }
}

  • 提示:通過final修飾符修飾的類不可以繼承。沒有子類

抽象類

  • abstract 抽象類 : 介面 (介面可以多繼承)

  • 只有方法名,沒有方法的實現

  • 繼承了抽象類的子類,必須要實現抽象類中的所有方法。

  • 不能new這個抽象類,只能靠子類取實現它;

  • 抽象方法必須再抽象類中

介面

  • 只有規範,自己無法寫方法。

  • 宣告介面的關鍵字時interface

  • 介面中的所有定義都是抽象的。

public interface 介面 {
    void sum(int a,int b);
}
​
class Sum implements 介面 {
    @Override
    public void sum(int a, int b) {
        int sum = a+b;
        System.out.println(sum);
    }
    public static void main(String[] args) {
       Sum s =  new Sum();
       s.sum(5,6);
    }
}

  • 可以看到上方程式碼中,介面無法寫具體方法,介面無法被例項化,需要在實現介面的類中寫具體的方法,之後在主方法中建立介面例項,呼叫方法。

  • 介面可以多繼承,繼承多個介面,實現多個介面的方法。

  • 介面不能被例項化,介面中沒有構造方法。

  • implements可以實現多個介面

  • 在介面的實現類中必須重寫介面的方法。

內部類

class Outer {
    public void out(){
        System.out.println("外部類");
    }
    class Inner{
        public void in(){
            System.out.println("這是內部類");
        }
    }
}
class diaoyong{
    public static void main(String[] args) {
        Outer outer = new Outer();//這裡時建立外部類的例項以及呼叫方法
        outer.out();
        //建立內部類
        Outer.Inner inner = outer.new Inner();
        inner.in();
    }
}

  • 上圖所示,我們可以看到在Outer類中又定義了一個類,叫做Inner類,這叫做內部類。

  • 內部類不可以直接例項化,需要先建立包含著他的類,也就是Outer類,之後再根據outer類new出內部類。

  • 靜態內部類無法直接訪問非靜態屬性

  • 一個java類中只能由一個Public的類,可以由多個class類。

異常

Error和Exception

  • 異常指的是,程式執行中出現的不期而至的各種狀態,如:檔案找不到,網路連線失敗,非法引數等。

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

  • 異常可簡單分為三大類,

    • 檢查性異常:比如使用者錯誤或者問題引起的異常,這是程式設計師無法預見的,例如要開啟一個不存在檔案時,一個異常發生了,這些異常在編譯時不能被簡單的忽略。

    • 執行時異常:執行時異常是可能被程式設計師避免的異常,與檢查性異常相反,執行時異常可以在編譯時被忽略。

    • 錯誤:錯誤不是異常,而是脫離程式設計師控制的錯誤,錯誤在程式碼中通常被忽略,例如,當棧溢位時,一個錯誤就發生了,它們在編譯時也檢查不到。

  • Error異常

  • Exception

捕獲和丟擲異常

  • 異常處理5個關鍵字:try、catch、finally、throw、throws

public class Student {
​
    public static void main(String[] args) {
​
        int a=1;
        int b=0;
       try {  //try監控區域
        System.out.println(a/b);
       }catch (ArithmeticException e){//捕獲異常 catch(想要捕獲的異常型別)
           System.out.println("程式出現異常,變數B不能為0");
       }finally {//處理善後工作
           System.out.println("finally");
       }
    }
}
  • 以上catch()裡寫的是需要捕獲的異常型別,在以上的異常體系表裡可以看出,異常型別是具有等級分別的,Throwable是最高級別,包含著所有異常。

  • 如果需要捕獲多個異常,需要按照異常等級從小到大捕獲。

  • 可以在idea中選中語句後ctrl+alt+t快捷鍵生成捕獲異常語句

  • throw語句是手動丟擲異常