think in java day01

2016年6月2日20:21:15

---------------------------------------------------------------------------------------

概念:

抽象的進步

-->  所有的編程語言的最終目的都是提供一種“抽象”方法,一種較有爭議的說法是,解決問題的複雜程序直接取決抽象的種類和質量

彙編語言是機器語言的少量抽象,後來命令式的語言是對彙編語言的抽象,但是他們的抽象原理着種考慮計算機的結構,而非考慮問題本身的結構,

--> 爲機器建模的另外一個方法就是爲解決的問題製作建模,面向對象程序設計中,程序員將問題空間中出現的元素叫做對象(Object)

對象的入門

1.面向對象的設計方法:

1.1 一切皆對象

1.2 程序就是一大堆對象的集合

1.3 每個對象都有自己的存儲空間

1.4 每個對象都有類型

1.5 同一類所有的對象都能接收相同的消息

2. 對象的類型

將多個對象的共有特性和行爲,總結抽取成一個新的類型,這些對象就是這個類型的特殊實現。

一個類,可根據情況生成許多對象,可將這些對象作爲要解決的問題處理。

在程序設計的時候,面臨最大的挑戰就是如何在“問題空間”(問題時間存在的地方)的元素與“方案空間”(對實際問題進行建模的地方,如計算機)的元素之間建立理 想的“一對一關係”。

在面向對象程序設計中,讓對象去完成一項工作的定義是在對象裏面定義函數,通過new class ,新建一個對象,再使用“.”來調用對象的函數,向對象發號消息,

執行工作。

3. 實現方案的隱藏

原因:

3.1 防止程序設計員接觸到他們不該接觸的東西,通常是一種內部的數據設計思想

3.2 方便庫設計人員對內部結構修改,而不影響它對程序設計員的使用

java提供了三個顯式關鍵字和一個隱式關鍵字來控制成員的訪問權限

1.public

公共的,所有人都可以訪問

2.protect

受保護的,同包類,或者不在同一個包下的子類都可以訪問

3.隱式的

默認的,只允許同一個包下的類訪問

4.private

私有的,本類下的成員纔可以調用

3.面向對象的特性

3.1 封裝

代碼的重複利用的最好的方法就是直接使用這個類的對象,新類可由其他的任意數量和類型的對象構成,

對象的成員一般設置爲私有,這樣程序設計人員就不能輕易地訪問成員,這樣一來,庫設計人員可以從容的修改成員變量,而不影響客戶端的程序,

也可以在運行期修改成員,這樣的靈活性是繼承不能達到的。

3.2 繼承

在實際對象建模過程中,一個新的類型和 舊的類型實際實現大致相同,那麼我們就不用去重新去創建一個新的類型,使用繼承,能夠很好地解決這個問題。

java中使用關鍵字 extends來實現

繼承時,相當創建了一個新類,這個新類不僅包含了父類的所有成員,更重要的是,它複製了父類的接口,也就是說父類的所有行爲,子類都支持。

當然,這個新的類型並不只是簡單的繼承父類的行爲和行爲,這個類的還具有其他的特殊方法,進行這種處理的時候,一般是意識到父類不能滿足我們要求,

所以必須添加更多的函數。

儘管拓展新的功能,能夠區分新類,但是還有第二種方法,那就是改變基礎類現有的函數的行爲,我們將其稱爲改善那個函數,也就是重寫(OveRider)

3.3 多態

繼承對造成一系列的類,所有的類都建立在同一個接口上。

那麼這個時候,我們可以把子類的對象當作父類的一個對象來看待。

將一個子類的對象執行一個父類的引用。

這就是多態,多態在程序的拓展方面,可以減少了對方法重載。

編譯器和運行期系統進行了主要細節的控制,在程序沒有給出提示,或者指示的時候,不同的對對象都能正確的執行工作,這就是動態綁定。



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