1. 程式人生 > 遊戲資訊 >【戰爭雷霆】中系的無能資料員可能要被貶為庶人了

【戰爭雷霆】中系的無能資料員可能要被貶為庶人了

封裝、繼承、多型

封裝

  • 該露的露,該藏的藏

    • 程式要求“高內聚,低耦合”,高內聚就是類的內部資料操作細節自己完成,不允許外部干涉;低耦合:僅暴露少量的方法給外部使用。

  • 封裝(資料的隱藏)

    • 通常,應禁止直接訪問一個物件中資料的實際表現,而應通過操作介面來訪問,這稱為資訊隱藏。

  • 屬性私有,get/set

封裝的意義:

  1. 提高程式的安全性,保護資料

  2. 隱藏程式碼的實現細節

  3. 統一介面

  4. 系統的可維護性增加了

繼承

  • 繼承的本質是對某一批類的抽象,從而實現對現實世界更好的建模

  • extends的意思是“擴充套件”。子類是父類的擴充套件

  • JAVA中類只有單繼承

    ,沒有多繼承;一個兒子只能有一個父親,一個父親可以有多個兒子

  • 繼承是類和類之間的一種關係,除此之外,類和類之間的關係還有依賴、組合、聚合等

  • 繼承關係的兩個類,一個為子類(派生類),一個為父類(基類)。子類繼承父類,用關鍵詞extends來表示

  • 子類和父類之間,從意義上講應該具有“is a”的關係。

 

子類繼承了父類,就會擁有父類的全部方法

私有的東西無法被繼承

  • object類

  • super 呼叫父類的構造器必須要在子類構造器的第一行

  • 方法重寫

多型

動態編譯:型別:-可擴充套件性

同一個方法可以根據傳送物件的不同而採用多種不同的行為方式

一個物件的型別是確定的,但可以指向物件的引用的型別有很多(父類,有關係的類)

多型存在的條件:

  • 有繼承關係

  • 子類重寫父類方法

  • 父類引用指向子類物件

注意:多型是方法的多型,屬性沒有多型性

instanceof 型別轉換 引用型別,判斷一個物件是什麼型別

  •  父類引用指向子類的物件
     把子類轉換為父類:向上轉型
     把父類轉換為子類:向下轉型,強制轉換
     方便方法的呼叫,減少重複的程式碼,簡潔

 

static關鍵字

     {
         //程式碼塊(匿名程式碼塊)賦初值
         System.out.println("匿名程式碼塊");
    }
     static{
         //靜態程式碼塊,只執行一次
         System.out.println("靜態程式碼塊");
    }
     public Person(){
         System.out.println("構造方法");
    }
 執行結果:
     靜態程式碼塊
     匿名程式碼塊
     構造方法
     
 靜態>匿名>構造方法
     靜態程式碼塊之執行一次

 

抽象類

 不能new這個抽象類,只能靠子類去實現它:約束!
 抽象類中可以寫普通方法
 抽象方法必須解除安裝抽象類中
 抽象的抽象:約束
 
 //思考題?
    //存在構造器嗎?
    //存在的意義? 提高開發效率

 

介面

普通類:只有具體的實現

抽象類:具體實現和規範(抽象方法)否有!

介面:只有規範!自己無法寫方法~專業的約束!約束和實現分離:面向介面程式設計~

介面的本質是契約

宣告類的關鍵字是class,宣告介面的關鍵在是interface

介面是面向的精髓,是對物件的抽象