20165233 2017-2018-2 《Java程序設計》第四周學習總結
教材學習內容總結
ch05java
- 子類與父類以及子類的繼承性
- 一個子類只能有一個父類
- 使用
extends
關鍵字定義子類
- 子類與父類在同一個包中、不在同一個包中的不一樣繼承特色。
- 子類與對象
- 子類對象能夠調用繼承的方法,操做沒有繼承的成員變量。
- 成員變量的隱藏與方法的重寫
- 子類從父類繼承來的成員變量與子類本身所聲明的成員變量名字相同,則會隱藏繼承的成員變量。
- 子類經過重寫能夠隱藏繼承的方法(也稱方法覆蓋)
- 重寫的規則及目的
super
、final
關鍵字
- 對象的上轉型對象以及繼承與多態
- 用子類建立一個對象a,並把這個對象的引用放到父類的對象b中,則對象a是對象b的上轉型對象。
- abstract類與abstract方法
- 面向抽象編程
ch06git
- 接口以及接口的實現
- 接口的接口體中只能夠有常量和abstract方法
- 和類同樣,接口也是Java中的一種重要的引用型數據類型,接口變量中只能存放實現該接口的實例(對象)的引用。
- 接口回調:當接口變量中存放了實現接口的類的對象的引用後,接口變量就能夠調用類實現的接口方法,這一過程被稱爲接口回調。
- 理解接口以及接口與多態:和子類體現多態相似,由接口產生的多態就是指不一樣的類在實現同一個接口時可能具備不一樣的實現方式。
- 接口參數
- 面向接口編程
教材學習中的問題和解決過程
- 問題1:爲何要重寫而不是新寫一個方法呢?
- 問題1解決方案:方法的名字是很是重要的,並且是經常使用的,這樣在使用時,方法即是人們習慣性使用的,更加方便操做。
- 問題2:教材121頁中,子類定義方法
computer
時,多增長了一個變量,此時是否屬於重寫繼承的computer
方法呢?編譯與運行結果如何?
- 問題2解決方案:此時不屬於重寫
computer
方法,因爲子類沒有覆蓋繼承computer
方法,使子類出現了方法重載。
- 問題3:
super
關鍵字的好處是什麼?
- 問題3解決方案:又要重寫,還想繼續使用這個方法,即想用父類的變量或方法,並想改進父類,但又不想重敲一遍,這時即可利用
super
關鍵字。
- 問題4:爲何使用接口,而不是直接寫個方法實現呢?
- 問題4解決方案:當子類有不一樣的父類時,但還要有一樣的行爲標準,可使用同一個接口。
代碼調試中的問題和解決過程
- 問題1:編譯Example6_4.java時,出現瞭如圖所示的錯誤,如何解決?
![](http://static.javashuo.com/static/loading.gif)
- 輸出命令行
System.out.printf
錯敲成System.out.println
.
![](http://static.javashuo.com/static/loading.gif)
上週考試錯題總結
- 錯題1:觀察如下方法的定義,則該方法的返回類型爲?
ReturnType method(byte x,double y) {
return (short)x/y*2;
}
緣由:對於類型轉換的知識點理解不太透徹。
理解狀況:short
將byte
類型的x
強制轉換爲short
類型,但y
的精度更高,因此返回類型爲double
。編程
- 錯題2:
short
和Float
都屬於基本數據類型?
緣由:未區分清楚數據類型與封裝類的區別。
理解狀況:Float
是float
提供的封裝類,不是基本數據類型。
- 錯題3:定義
float x = 0.5f;double y = 0.5
,則x == y
結果爲false
?
緣由:對於float與double類型的異同掌握不熟練。
理解狀況:0.5
在float
和double
的範圍內均可以使用二進制精確表示,所以兩者相等。
其餘(感悟、思考等,可選)
本週對於編程的學習已經深刻到了編程思想方面,例如面向抽象編程與面向接口編程。這些思想有着很大的共同之處,在用戶需求多變的時候,接口與抽象的方法對於修改和維護程序提供着更大的便利。在這周的學習中,對於知識點的理解慢慢的有一些容易了,因爲微課視頻中,老師會舉一些直觀,貼近生活的例子。可是感受到本身能夠編寫出一個全面可行的程序還相差甚遠,須要繼續努力。學習