《JAVA程式設計思想》讀書筆記——多型、介面
1,關於多型,物件點取域操作(成員物件)就不是多型的,因為任何域訪問操作都將由編譯器解析。
2,綜合考慮繼承,初始化的實際過程是:
a,將分配給物件的空間清零
b,呼叫基類的構造器。
c,按照宣告順序,呼叫成員的初始化方法。
d,呼叫匯出類的構造器。
3,包含抽象方法的類叫抽象類。介面中所有方法都抽象且為public的,介面可以包含域,但隱式就是static和final的(常用來定義常量類)。
4,使用介面的核心原因:
a,為了能夠向上轉型為多個基型別。
b,防止客戶端程式設計師建立該類的物件
5,介面可以擴充套件(extends)多個介面,類似於C++中的多繼承。
6,雖然通過介面中放入static final域來定義常量組,但是新版的JDK提供了更好的enum關鍵字
7,總結:不應該優先選擇介面而不是具體的類。任何抽象性都應該是應真正的需求而產生的。所以,恰當的原則應該是優先選擇類而不是介面。從類開始,如果介面的的必須性變得非常明確,那麼久進行重構。介面是一種重要的工具,但是他們容易被濫用。
相關推薦
《JAVA程式設計思想》讀書筆記——多型、介面
1,關於多型,物件點取域操作(成員物件)就不是多型的,因為任何域訪問操作都將由編譯器解析。 2,綜合考慮繼承,初始化的實際過程是: a,將分配給物件的空間清零 b,呼叫基類的構造器。 c,按照宣告順序,呼叫成員的初始化方法。 d,呼叫匯出類的構造器。 3,包含抽象方法的類叫
Java程式設計思想讀書筆記_8_多型
如果一種語言想實現後期繫結,就必須具有某種機制以便在執行時能判斷物件的型別,從而呼叫恰當的方法,也就是說,編譯器不知道物件的型別,但是方法呼叫機制能找到並呼叫正確的方法體; Java中除了static方法和final方法(private方法也屬於final方法)以外,其它的方法都是後期繫結的;(因此以前還可
Java程式設計思想讀書筆記(一)第1~13、16章
目錄: 第1章 物件導論 1.1 伴隨多型的可互換物件 面向物件程式設計語言使用了後期繫結的概念。當向物件傳送訊息時,被呼叫的程式碼直到執行時才能確定。也叫動態繫結。 編譯器確保被呼叫方法的存在,並對呼叫引數和返回值執行型別檢查(Java是強型別的語言,無法
java程式設計思想讀書筆記 第十五章 泛型 (匿名內部類和擦除)
1.匿名內部類 泛型還可以應用於內部類以及匿名內部類。下面的例子使用匿名內部類實現了Generator介面: public class Customer { private static long counter = 1; private f
【Java程式設計思想】8.多型
在面向物件的程式設計語言中,多型是繼資料抽象和繼承之後的第三種基本特徵。 多型分離了“做什麼”和“怎麼做”,讓介面和實現分離開,改善了程式碼的可讀性和組織結構,建立了可拓展的程式。 封裝,通過合併特徵和行為來建立新的資料型別。 實現隱藏,通過將細節“私有化”把介面和實現分離開來。 多型,消除型
java程式設計思想讀書筆記二(物件的建立)
java物件 物件的建立 java的物件是在執行時建立的,建立物件的的觸發條件有以下幾種: 用new語句建立物件,這是最常用的建立物件方法。 運用反射手段,呼叫java.lang.reflect.Constructor類的newInstance()例項方法。
java程式設計思想讀書筆記一(面向物件)
面向物件 我們常見的程式設計正規化有指令式程式設計,函數語言程式設計,邏輯式程式設計,而面向物件程式設計也是一種指令式程式設計。 指令式程式設計式面向計算機硬體的一種抽象,有變數(儲存單元),賦值語句(獲取儲存指令),表示式(記憶體引用和算術運算)和控制語句(跳轉指令),命令式程
java程式設計思想讀書筆記三(HashMap詳解)
Map Map介面規定了一系列的操作,作為一個總規範它所定義的方法也是最基礎,最通用的。 AbstractMap AbstractMap是HashMap、TreeMap,、ConcurrentHashMap 等類的父類。當我們巨集觀去理解Map時會發現,其實Map就是一
Java程式設計思想讀書筆記——第六章:訪問許可權控制
第六章 訪問許可權控制 初學Java的時候很納悶,為什麼要提供各種訪問修飾,都用public不就行了,程式都能執行,還多省事 我感覺如果這個程式只有你自己去編寫,去維護,那麼其實訪問許可權可以忽略 但是,比如說我寫了一個第三方開源庫,有很多很多的人在使用我的庫,那麼如
程式設計思想 之「多型、初始化順序、協變返回型別」
溫馨提示:本系列博文(含示例程式碼)已經同步到 GitHub,地址為「java-skills」,歡迎感興趣的童鞋Star、Fork,糾錯。 在面向物件的程式語言中,有三個特性,分別為:封裝、繼承和多型。實現多型的前提是繼承,多型的作用是消除型別之間的耦
java程式設計思想讀書筆記----第十章 內部類
1、建立內部類 將類的定義置於外部類的裡面,在外部類中可以直接new一個內部類的事例,通常外部類會有一個方法,該方法會返回一個指向內部類的引用。如果從外部類非靜態方法之外的位置其它類建立某個內部類的物件,必須具體的指明這個物件的型別:OutClassNam
JAVA程式設計思想學習筆記(八)介面
介面 抽象類和抽象方法 抽象方法:這種方法不完整,僅有宣告而沒有方法體。所採用的語法如下: abstract void f(); 抽象類:包含抽象方法的類叫做抽象類,如果一個類包含一個或多個抽象方法,該類必須被限定為抽象的。 介面 關鍵字:interface 介面定
Java程式設計思想 第八章讀書筆記-多型
多型是面向物件三種基本特徵之一(繼承,抽象,多型) 多型存在的意義是什麼?自己的理解,多型消除了型別的耦合。如果一個方法的引數是基類物件,如果沒有多型,那麼我們需要判斷傳入的引數到底是基類的哪個衍生類,然後還掉統一方法名的方法,程式碼比較冗餘,和類的耦合度很高。有了多型,我
JAVA程式設計思想學習筆記(七)多型
多型 繫結 繫結: 將一個方法呼叫同一個方法主體關聯起來被稱作繫結。 前期繫結: 若在程式執行前進行繫結,叫做前期繫結,它是面嚮物件語言不需要選擇就預設的繫結方式。 後期繫結: 它的含義就是在執行時根據物件的型別進行繫結,也叫做動態繫結或執行時繫結。java中除了static和fin
Java程式設計思想學習筆記-第11章
.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-famil
Java 009 面向物件(多型、抽象類、介面)
知識點梳理 心得體會 小知識點 1.多型中成員訪問特點:成員方法看左右,子類都會先訪問父類構造方法(先初始化父類成員才能被子類呼叫),其他只看左邊 2.多型缺點:不能使用子類特有功能,解決辦法有兩種:一、建立子類物件調方法(不合理且佔記憶體)二、向下轉型:Zi z=(Zi)
JAVA程式設計思想學習筆記(一)
物件導論 1.1 抽象過程 Smalltalk的五個基本特性: 萬物皆為物件。 程式是物件的集合,它通過傳送訊息來告知彼此所要做的。 每個物件都有自己的由其他物件所構成的儲存。 每個物件都有其型別。 某一特定型別的所有物件都可以接受同樣的訊息。
java程式設計思想學習筆記——第1章 物件導論
1.1 抽象過程 面向物件思想的實質:程式可以通過新增新型別的物件使自身適用於某個特定問題。 面向物件思想的五個基本特徵: 1)萬物皆物件 2)程式是物件的集合 3)每個物件都有自己的由其他物件所構成的儲存 4)每個物件都有其型別 5)某一特定型別的所有物件都可以接收同樣的訊息 物件具有行為、
《Java程式設計思想》筆記14.型別資訊
執行時型別資訊使得你可以在執行時發現和使用型別資訊,主要有兩種方式: “傳統的”RTTI,它假定我們在編譯時已經知道了所有的型別; “反射”機制,它允許我們在執行時發現和使用類的資訊。 14.1 為什麼需要RTTI RTTI維護型別型別的資訊,為多型機制的實現提供基礎。 14.2 Cla
java程式設計思想學習筆記——第2章 一切都是物件
儘管java是基於C的,但是相比之下,java是一種更“純粹”的面向物件程式設計語言。 2.1 用引用操縱物件 一切都視為物件,因此可採用單一固定的語法。儘管這一切都看作物件,但操縱的識別符號實際上是物件的一個“引用(reference)”。 java語言的一個特性:字串可以用帶引號的文字初始化。通常,