Java5-7作業總結(第八次作業)19201421-吳志越

前言:關於此次三次作業,相比於前3次難度着實高了一個檔次,第五次作業,雖然對於工具類沒有很高。但是第一題的複雜程度很高,對於正則表達式有很高的要求,需要使用很多正則表達式的方法,而且不能有一處錯誤,對代碼的質量要求很高。而在第六次和第七次作業中,就需要使用工具類了,還有鏈表的處理,在鏈表的處理上,出現了多種工具類,對鏈表進行處理。還有鏈表本身,就只是一種類,在傳入數據和傳出數據的過程中,就需要一點方法。同時,在第六次作業中,仍然需要使用正則表達式,而且要求也不低。

過程總結:在第五次作業中,首先涉及到繼承,在第五次作業中,需要對繼承使用,圖形的繼承是一個很好的例子,讓因為,這個很容易理解,並且對於每一個圖形,他們本身的固有屬性,都是對一個圖形的描述,給了這些數據,一個類也就基本確定了是什麼樣子。第五次作業中,最難的應該是正則表達式,這個對於一個人的思維要求很高,突出了一個問題,設計性。如果你想要有這個思維,需要經過不斷的練習,這個就需要時間練習了。而在第六次作業中,主要的難點還是在於正則表達式,與第五次不同,這次還需要使用工具類。工具類的目的是為了修改數據,而正則表達式的使用是一個判定方法。正確判斷後,就需要使用工具類進行修改,最後輸出。第六次作業,在圖形的繼承,增加了多態,讓繼承的方法增加了難度。在第六次作業中,就出現了鏈表,也就是arrarylistJava中的鏈表,相對於C語言中,更加簡單,但是是兩種不同的格式,可能Java中的鏈表與數組有幾分相似,但是裏面儲存的數據類型並不相同。添加方面,這個類具有自身的方法,還有很多方法,是這個類本身具有的。三次作業之間的知識迭代關係上,第五次作業更加偏向於認識,面對對象中的許多技術,對於使用上面的要求,並沒有後兩次高,但是代碼量並不比後兩次小。後兩次作業在類的使用上,具有更高度要求,有繼承,有工具類的使用,有類的多態,相比於第五次,具有更複雜的代碼。這幾次作業中涉及的正則表達式,是C語言中沒有的。也是個很好用的類,但是如果是設計匹配器的話,還是有一點難度的。對於面向對象的封裝性、繼承性與多態性三大技術特性對象的封裝性,就是把對象的屬性,行為進行封裝,載體是類,一個類,也就約是一個對象,對於每一個對象都進行封裝,讓每一個對象具有自己本身的屬性,這樣更加利於設計,在往後的軟件設計中,對象對應一個軟件的功能,讓對象封裝,就是讓軟件的每一個功能獨立,使得他們的功能不會相互影響。在對象的繼承上,具有很多種繼承方法,有直接繼承和間接繼承,一般情況下,不會採用直接繼承,而是採用間接繼承,因為如果直接繼承,在日後對代碼的修改上,父類代碼的修改,會嚴重影響到子類。從而加大了軟件的維護成本,最好採用間接繼承,實現低耦合。這樣,如果父類代碼被修改,子類代碼也不需要修改很多,從而降低維護成本。多態性的使用,就需要使用抽象類了,在多態性的使用上,父類與子類之間,不具有很大的聯繫,因為父類會被定義為抽象類,在對父類方法的使用上,只有父類方法在子類經過重寫,才可以使用。這樣使得父類的方法,能夠在不同子類中發揮不同的作用。並且,也利於以後代碼的維護,只需要修改子類,不需要修改父類。在問題上,第五次作業中,正則表達式,是一個很頭疼的問題,因為正則表達式的固定模板很少,很多需要自行設計。後來通過一定的資料文獻,完成匹配器的設計。在圖形的繼承上,不需要很大的設計。第六次作業中,同樣是在正則表達式,出現很多問題,同樣通過查找設計模式,完成匹配器的設計。在第六次作業中,就需要使用arrarylist了。鏈表的使用,需要很多的方法,在剛開始時,出現了很多問題,後來通過問同學,完成部分代碼設計。這幾次作業花費的時間,相比於前幾次,可能翻了一倍,特別是最後一次作業,花費了很久的時間也沒有寫出來。第五次和第六次作業中,只有一題比較難寫,其他題目還是能夠拿到滿分的。如果算的話,至少需要兩個下午兩個晚上。對於這次編程發現了自己很多的問題,比如說工具類的使用,還有鏈表的使用,還有正則表達式的使用,這些都是我沒有克服的大問題,還有很多小問題需要自己慢慢學習修改。我知道,如果沒有把現在的知識學熟,學到後面,問題會越變越多。我需要一段時間對以前的知識進行複習,不然後面就步步維艱了。

oo設計心得:封裝性,繼承性,多態性三大技術讓不同的類在實現自身功能的同時,對其他類不會造成很大的影響,同時,在功能的繼承上,也不會出現錯亂。三大技術特性之間的功能相互補充,相互適應最後形成一個完整的軟件系統,在系統內,所有的功能都可以實現,並且不同的功能在使用上,不會出現相互排斥或者相互關聯的狀況,這樣,不僅僅利於用戶的使用,也利於軟件員工的維修。對於oo編程思維,這個具有完整的體系,三大技術,讓oo編程思維更加成熟,在採用oo編程時,遵循三大特性進行編程,可以在減少時間複雜度的同時,提高編程效率。

測試的理解與實踐在代碼開始複雜後,如果沒有測試,就會出現編程人員同樣想不到的問題,如果是民用軟件還只是經濟的損失,如果是軍用軟件出現問題,後果將不堪設想,具有代碼的測試,讓軟件具有更高的可行性和信任性。

對課程的建議:第三階段作業難度、題量的建議建議減少難度增加題量,讓知識有一個循序漸進的過程。課程內容講解方面的建議希望對arrarylist這個類進行更加詳細的講述,因為這個鏈表很重要。