1.總結三次做業之間的知識迭代關係:關於前三次做業之間的迭代關係,第一次做業主要是關於Java的最基礎的練習,算法均可以直接再main函數裏面實現,初步瞭解Java的一些基本的操做,輸入輸出,至於其它語句和C語言都是同樣的。算法
第二次做業開始是關於日期方面的題目了,對於日期的相關操做都在一個類當中實現,只不過每一個功能寫成了一個子函數,因此先後題目所須要的共同方法只能複製過來。編程
第三次做業也是關於日期方面的操做,算法都在第二次做業基本實現了,只是題目對於編程的思想有了要求,要求用不一樣的類來實現每一個功能,而且還有分類與類之間的關係來實現;這三次做業按部就班,從咱們學C語言面向過程的思想引入到Java面向對象的思想,題目實現的功能雖然說同樣,可是所用到的知識點卻大有不一樣。框架
2.如何經過做業逐步從面向過程過渡到面向對象:前三次做業就是逐步引入咱們到面向對象,學習了C語言以後這種面向過程的思想難以一下就改變過來,因此第一次做業就是面向過程的,我認爲第一次做業就是先讓咱們熟悉一下Java的一些基本操做,因此經過第一次做業熟悉基本操做以後,第二次的做業也不會過於陌生,經過第二次這一次過渡的環節:在一個類當中用子函數寫好所要實現的功能;再而後是第三次就引入了面向對象的思想,跟着題目給的UML類圖,寫好每個類的功能以及類與類之間的關係,可以較好理解並完成第二題,第三題就是須要理解好每一個類的關係,就好比第三題當中的Year類,Month類,Day類,DateUtil類的關係,通俗的說就是一層包一層,Year類是最裏面的一層,其次是Month類,Day類,再全收在DateUtil類當中算法第二題基本能夠照搬,理解了第三題以後,第四題也就迎刃而解了,其實作完第三次做業第三題以後就體會到面向對象與面向過程的不一樣。函數
3.做業過程當中遇到的問題及解決方法:在第一次做業當中除了一些基本算法以及小bug以外,主要是對Java的一些輸入操做還不熟悉,後面百度了才知道要調用Scanner這個類進行輸入,該類在JDk當中寫好了,這在後面加深了我對類的調用的理解。學習
在第二次做業當中,第一題是一元二次方程,忘記考慮了二次項係數不爲0的狀況;第二題是在非法日期上面存在問題,就是閏年2月不大於29,平年2月大於28;第三題第四題仍是在於求下一天、下n天算法上面存在一些問題,就是少算了幾天多算了幾天,閏年平年的考慮,這方面的解決方法無需多提,就是考慮周全就好。測試
第三次做業主要問題集中在第三題,因爲除了課堂做業外第一次作這種面向對象題目還有些生疏,主要問題在於類與類之間的關係沒有整理好,調用方法以及返回值的問題,還有第二次做業的日期判斷bug沒有被測到,把算法搬過來以後在第三次做業第三題被測到。關於類與類之間的關係以及方法的調用問題是詢問了同窗以後基本上理解了,就好比我不知道如何在第三題Month類,Day類當中調用year的方法,後面理解了是根據類之間的關係結構來調用,這要先理清關係才能作;改完從新寫過日期判斷的方法的算法後,因爲求下n天前n天的時間複雜度太大,稍微改進了算法,原先用的for循環,後面改進用的while(){switch}以後就符合在題目要求的時間限度。編碼
第四題沒什麼問題,而且很快就寫完一次過了,問題都在第三題,解決了第三題的疑惑,第四題也就沒什麼問題了。spa
4.每次做業花費的時間比例:第一次做業作題目的時間前先後後花了5個小時左右,第二次做業也花費了5小時左右,第三次做業花費了10小時左右。設計
5.對編程過程的嚴謹性的認識及教訓:對於編程的嚴謹在於敲代碼以前構思好框架,對於一些特殊狀況的考慮,就比如個人第三次做業主要修改程序的時間花在了日期判斷上面,由於搬用以前第二次做業的這個日期判斷的代碼,第二次沒被測出bug,致使後面作第三次做業花費大量時間尋找修改,雖然說是小bug,並不是硬核技術錯誤,可是確實花了最多時間去找去修改,真的是小錯誤浪費大時間,編程心態也受到影響,因此對於此次的教訓是刻骨銘心,實現算法要先仔細地周全地考慮一些特殊狀況。對象
1.面向過程與面向對象的比較:經過這三次做業,從面向過程過渡到了面向對象的思想,面向過程主要是在於考慮思考如何去實現這個算法,以過程爲中心,更加側重與算法實現方面的問題;面向對象在於考慮對象問題,把每一個對象分開考慮,考慮每一個對象所應有的屬性和方法。
2.面向對象設計的基本原則理解:把每一個類分開考慮,考慮這個類應該是什麼,具備什麼屬性方法,不須要考慮這個類以外的事情,作好份內之事便可。
3.OO編程思惟的理解:編程以前考慮應該能分紅幾個類,每一個類應該負責什麼,每一個類所處的層次問題以及它們之間的關係。
1.測試對於編碼質量的重要性:一次性寫完沒有語法錯誤的代碼並不難,可是一次寫出完美無bug的代碼是比較難的。因此測試對於編程可謂是很是重要的環節,沒有測試過的代碼就像是沒有淨化的水,誰也不知道水裏面藏着什麼污垢。
2.假如讓你設計測試用例,你會如何作:我設計測試用例首先是用普通用例,首先這是檢查代碼大體的正確性,其次再是考慮一些特殊狀況,儘量全面地考慮全部特殊狀況。
1.總結這四周來在OO方面的教訓及收穫:教訓是對於每一個類裏面的命名要規範正確,作第三次做業在命名方面的錯誤也居多,寫完以後再修改工做量實在大。收穫是對於OO編程思想有了更好的理解,從當初學習C語言的面向過程思想轉變到了面向對象的思想。
1.課堂建議:建議課堂側重一下講解知識點與舉例的比重,我的以爲能夠更加側重於舉例與實際操做;其次是課間10分鐘時間能夠安排一下,長時間聽課效果不是很好。