Java編程思想讀書筆記——對象導論

第一章 對象導論

本章主要介紹的是面向對象編程(Object-oriented Programming, OOP)的基本概念。

1.1 抽象過程

面向過程:在解決問題時基於計算機結構考慮;
面向對象:在解決問題時針對待解決問題建模。
對象(Object):問題空間中的元素及其在解空間中的表示。
面向對象的實質是通過添加新類型的對象使自身適用於某個特定的問題。

面向對象程序設計的基本特性:
* 萬物皆對象
* 程序是對象的集合,它們通過發送消息來告知彼此所要做的(即調用對象的方法)
* 每個對象都有自己的由其他對象所構成的存儲(即通過創建包含現有對象的方式來創建新的對象)
* 每一個對象都有其類型(每個對象(object)都是某個類(class)的一個實例(instance))
* 某一特定類型的所用對象都能接收同樣的消息(即同屬一類的對象,都能調用該類的方法)

簡單總結:對象具有狀態(內部數據)、行爲(方法)和標識(內存地址)

1.2 每個對象都有一個接口

1.3 每個對象都提供服務

1.4 被隱藏的具體實現

程序開發人員包括類創建者和客戶端程序員。類創建者的目標是創建類,並向客戶端程序員暴露必需的部分而隱藏其他部分。客戶端程序員的目標在於收集各種用來快速開發的類。

訪問控制存在的原因,首先是讓客戶端程序員不能觸碰到他們不該觸碰的部分,其次在於允許類庫設計者可以改變類內部的工作方式而不用擔心影響到客戶端程序員的使用。

Java的訪問控制權限(access specifier):public、private、protected以及默認訪問權限(包訪問權限)。

1.5 複用具體實現

複用的方式:
* 直接使用該類對象;
* 將該類對象內置於一個新的類當中,即組合方式(composition),若組合動態發生,則稱爲聚合(aggregation)。

1.6 繼承

父類 子類
父類與子類產生差異:在子類中添加新方法;在子類中覆蓋繼承的方法。
is-a與is-like-a關係:
is-a:子類對象是一個父類
is-like-a:當子類除了父類方法外,還有另外的方法。

1.7 伴隨多態的可互換對象

前期綁定:編譯器產生對一個具體函數名字的調用,而運行時將該調用解析到將要被執行的代碼的絕對地址。
後期綁定:編譯器確保調用方法的存在,並對調用參數和返回值執行類型檢查,但是並不知道將被執行的確切代碼。
向上轉型(upcasting):將子類看作是父類的過程。

1.8 單根繼承結構

java採取單繼承,保證所有對象都具備某些功能。

1.9 容器

創建一種新的類型,該類型是持有其他對象的引用。Java SE5之前,默認是Object類型。Java SE5之後引入了泛型的概念,即容器知道自己所保存的類型。

1.10 對象的創建和生命期

兩種方式:
1. 將對象置於堆棧或靜態存儲區中,在編寫程序時就確定對象的存儲空間和生命週期,以追求最大的執行速度。
2. 在被稱爲堆(heap)的內存池中動態創建對象,這種方式是直到運行時才知道需要多少對象,它們的生命週期如何,以及它們的具體類型是什麼。
Java採用動態內存分配方式,使用new關鍵字創建對象,使用垃圾回收機制銷燬對象。

1.11 異常處理

1.12 併發編程

1.13 Java與Internet

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