天地三才陣——【Java三大特徵】

封裝

概念 :

在面向對象程式設計方法中,封裝(英語:Encapsulation)是指,一種將抽象性函式接口的實作細節部份包裝、隱藏起來的方法,可以被認爲是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問,要訪問該類的代碼和數據,必須通過嚴格的接口控制。

作用:

1.實現了專業的分工。將能實現某一特定功能的代碼封裝成一個獨立的實體後,各程序員可以在需要的時候調用,同時也方便修改;
2.方便控制。若程序出現問題或需要更新,可以直接在該類中修改,而不用去修改調用代碼的程序片段;
3.隱藏信息,實現細節。通過控制訪問權限可以將可以將不想讓客戶端程序員看到的信息隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發權限。


封裝時的權限控制符區別如下:在這裏插入圖片描述

舉例 :

有一個房子,房子裏面有廚房,衛生間,臥室,客廳等房間,每一個房間都有各自的用途,而客人要來我家喫飯也好,閒聊也好,那麼他只能從我家的門(對外暴露的接口)進來,那這個房子就代表一個“封裝”。

 /*
   * 封裝演示
    */
  public class House
 {	// 私有化屬性
      private String cookroom;
      //提供get/set方法
	 public String getCookroom() {
         return cookroom;
     }
     public void setCookroom(String cookroom) {
         this.cookroom = cookroom;
     }
 }

繼承

概念:

繼承,在原有類基礎上增加新的屬性和方法來構造新類的技術。一個類繼承另一個類,則稱繼承的類爲子類Sub Class,又叫繼承類,被繼承的類爲父類Super Class,又叫超類。私有成員private無法繼承,構造器無法繼承。

//語法
public class MyHouse extends House{
   //我的房子啥都沒有~
 }
特點:

創建子類對象時,也會先創建父類對象,只是沒有對象變量來接收這個父類對象,所以無法調用; 子類可以寫自己特有的屬性和方法,目的是實現功能的擴展,子類也可以複寫父類的方法即方法的重寫。


.this和super:java中的只讀變量,只能使用,不能修改。this表示本對象、本類、本構造器,super表示父對象、父類、父構造器。
覆寫:子類繼承父類的成員,重新實現了父類的成員OverRide,覆寫屬性即重新申明該屬性,覆寫方法即修改方法的內容。
作用:

實現代碼的複用。

注意:

1)當父類有帶形參的構造器時,子類必須也有構造器,並且必須在子類構造器的第一行代碼就調用>父類構造器:super(實參);
2)當子類沒有複寫父類的域,則子類公用父類的域的值,無論修改哪個類的該域的值,另一個類中>該屬性值也一同變化。當子類覆寫父類的域,則子類域的值和父類域的值就分離;
3)最後還要強調的一點就是繼承和 final 關鍵字的關係:
final 可以修飾類,代表當前被修飾類不能被繼承;
可以修飾變量,就變成了類的常量,這個變量一旦被初始化便不可改變;
可以修飾方法,代表子類不能複寫或者說不能改變被修飾的方法中的代碼,但是可以直接拿來使用;

多態

概念:

多態就是在聲明時使用父類,在實現或調用時使用具體的子類;即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性,多態增強了軟件的靈活性和擴展性。

條件:

1)繼承;
2)覆寫;
3)申明的父類對象卻引用了一個指向於子類的對象;

特點:

1)相同的事物,調用其相同的方法,參數也相同時,但表現的行爲卻不同;
2)子類以父類的身份出現,但做事情時還是以自己的方法實現。子類以父類的身份出現需要向上轉型(upcast),其中向上轉型是由JVM自動實現的,是安全的,但向下轉型(downcast)是不安全的,需要強制轉換。子類以父類的身份出現時自己特有的屬性和方法將不能使用。
引用接口時 通常是用的 private 接口名稱 實現名稱;

舉例:

比如聲明時使用的是動物類,調用時傳遞的是一個貓類(動物類的子類)的對象,具體執行父類裏動物——喫的方法時,實際執行的是貓——喫的方法。*

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章