1. 程式人生 > 其它 >Java_基礎_面向物件知識點小結

Java_基礎_面向物件知識點小結

  • 1-匿名物件:沒有名字物件 new 類名()

    • 1-1 呼叫方法
    • 1-2作為方法引數和返回值傳遞
  • 2-繼承

    • 2-1格式: extends
    • 2-2 特點;
      • a 類支援單繼承、多層繼承
    • 2-3 子類繼承父類成員特點
      • 父類定義非私有成員變數,子類可以直接使用
      • 成員方法
        • 必須繼承
        • 方法名 引數列表一致
          • 父類方法返回值可以是子類返回值型別或其父類
        • 方法許可權修飾符大於等於父類
      • 構造方法
        • 子類可以呼叫父類構造方法,在子類構造方法中存在預設super()
      • 呼叫父類成員變數
        • super.父類成員變數名
        • super.方法( 實參)
  • 3- this 和super

    • this 表示子類物件空間
      • 記錄物件地址
      • 區分成員變數和區域性變數
      • 呼叫本類構造方法this(實參)呼叫語句必須在構造方法第一行
    • super屬於父類空間標識
      • 作用
        • 呼叫父類成員變數
        • 呼叫父類成員方法
        • 構造方法super(實參)不能和this(實參)共存
  • Static

    • 修飾符:修飾成員變數、成員方法
    • 特點:直接使用類名呼叫
    • 靜態程式碼塊:讀取專案配置檔案
      • 隨著類的載入而執行,只執行一次
    • 細節:
      • 靜態成員變數
        • 使用類名呼叫,類一載入到記憶體方法區就初始化值,可以直接使用,且可以被多個物件共享
      • 靜態成員方法
        • 使用類名呼叫
      • 靜態使用
        • 靜態中只能使用靜態內容
        • 非靜態中能使用靜態的,非靜態需要建立物件
  • Final

    • 修飾符,可以修飾類,方法,變數,修飾的內容都不能改變
    • 修飾的類:不能有子類
    • 修飾的方法:不能被重寫
    • 修飾的變數
      • 區域性變數 不能改變
      • 成員變數:常量,單詞大寫
        • 賦值
          • 直接final int NUM = 3;
          • 構造方法初始化
  • 許可權修飾符

    • public:跨包、跨類
    • protected:子父類
    • 預設:同包,同一類
    • private:只有本類
  • 抽象類

    • public abstract class 類名{抽象方法}
    • 注意
      • 抽象類必須由子類繼承,在子類中重寫抽象方法
      • 抽象類不能建立物件,需要建立子類
  • 介面

    • 定義格式

      public interface{ 
      	public static final 資料型別常量名= 數值;
      	public abstract 返回值型別 方法名(引數列表);
      	public default 返回值型別 方法名(引數列表){}
      	public static 返回值型別 方法名(引數列表)
      	
      }
      
    • 類和介面關係

      • 一個類可以實現多個介面
      • 一個類先繼承父類再實現介面
      • 注意:如果父類和介面存在一樣的方法,先使用父類方法
    • 介面和抽象類的區別

      • 抽象類描述共性內容,可以有構造方法,不能建立物件
      • 介面沒有構造方法,描述擴充套件,不能建立物件
  • 列舉

    • 定義格式
    public enum 列舉類{
    	屬性,屬性...
    }
    
    • 細節

      • 列舉中的屬性都是列舉類物件

      • 屬性是被static final修飾

      • 使用列舉類屬性:列舉類.屬性名

      • 屬性預設呼叫無參構造,想呼叫有參構造:屬性(實參)

      • 列舉類中構造方法都是私有的

      • 使用在switch語句中:

        switch(列舉類.屬性名){
        	case 屬性名://不用書寫列舉類呼叫
        }
        
      • 列舉類是被final修飾

  • 多型

    • 父類引用或者父介面引用指向子類物件

    • 多型成員前提

      • 必須有繼承或實現
      • 必須重寫父類的方法 存在意義
      • 格式:父類引用指向子類物件
    • 成員特點

      • 非靜態成員方法:編譯看左邊,執行看右邊
      • 非靜態成員變數:無多型性
    • 多型弊端:不能使用子類特有的,想使用需要使用向下轉型,轉型會發生型別轉換異常

      父類引用型別變數名 instanceof 子類型別
      
      
    • 優勢

      • 擴充套件性強
      • 減少程式碼重複性
    • 多型+面向介面程式設計

  • 內部類

    • 匿名內部類

      new 父類或父介面(){
      	重寫父類或父介面中的方法
      }
      
    • 成員內部類

      Person.Heart p = new Person().Heart();
      
  • 隱式三步

    • 呼叫父類構造super()
    • 顯示給非靜態成員變數初始化
    • 執行構造程式碼塊