0.前言
從學習java以來,已經進行過三次pta作業的訓練。雖然每次作業的完成都遇到了些許困難和障礙,不是一帆風順的,但通過自己的摸索,實踐,總能完成作業要求,每次作業之后都有不同的收獲。這些新的收獲告訴我,實踐出真知,動手會學習到更多東西。總結前面的三次作業,我發現面向對象程序設計這種語言不再那么神秘,我相信馬上就能看到揭開神秘面紗后的的它。
1.作業過程總結
(1).總結三次作業的知識迭代關系
第一次作業是練習java類型的使用,以及一些簡單的語法。主要目的是讓我們熟練運用java的基本操作,為后面的練習打下堅實基礎。通過第一次作業,主要掌握了java類型的使用,及輸入輸出操作,起初輸入操作是不太熟悉的。第二次作業比第一次作業難度肯定加大了,最直觀的感受就是代碼量增多了,題型也是求解某一類問題,開始要求用方法,而不是所有東西都沒有章法地寫在main里面。方法的使用是java的一大特色,所以必須要求掌握。第三次作業顯然難度又加大了,作業的難度系數總是在上升狀態的,這樣才能得到有效的提高。這次作業的要求是另寫一個類並實現多種方法。確實難住我了,不過通過摸索還是實現了。類的使用是java入門,因為java程序就是用類組成的。這三次作業是有java知識迭代關系的:第一次作業:掌握java的基本語法及類型,以及輸入輸出操作——>第二次作業:掌握java的方法使用,以及稍復雜的計算——>第三次作業:掌握java的類的使用及多種方法的使用,用new操作來創建一個類的對象,從而用對象去調用類的功能方法。這些都是一次一次遞進的,每次作業完成后都會離真正的java更近一步,也能慢慢體會面向對象程序設計的特點。
(2).如何通過作業逐步從面向過程過渡到面向對象
作業通過一些具體要求,讓我們學習java的用法。第一次作業,就從輸入輸出感受到了面向過程與面向對象的差別,第二次作業就學習到了方法的用法,第三次作業,就了解到了java里的類與方法,這些都是作業提供的從面向過程到面向對象的過渡。
(3).作業過程中遇到的問題及解決方法
問題1:作業一中的判斷三角形類型中的判斷等腰直角三角形測試點過不去
解決方法:試了很多組數據,發現有的數據與預想的不一樣,原來計算機有精度要求,而等腰直角三角形的兩直角邊都是無理數,不能輕易用勾股定理判斷,要用精度去規范判斷等腰直角三角形。
問題2:作業一中的統計最大數出現次數中的以0結束弄不好
解決方法:剛開始我是用while(輸入整型數並以輸入0為結束),結果程序出錯,后面換了一種思路,把輸入整型並以輸入0結束放在while里面就可以了。
問題3:作業二中求二元一次方程中根為0的時候輸出-0
解決方法:當根為0時,直接控制輸出0
問題4:作業二中的日期類設計中指定的類的方法返回類的類型,不知道怎么返回。
解決方法:想了很久,試着各種方法,突然就試成功了。原來返回類就是用這個類去new一個對象,把改變的參數傳出去,返回這個類的對象。
問題5:作業二中的日期類設計中指定的類的方法返回String的類型
解決方法:也是試出來的,實踐出真知,直接返回年月日就可以了。
(4).每次作業花費的時間比例
大概是1:2:3,隨着作業難度的加大,花的時間也越多。
(5).對編程過程的嚴謹性的認識及教訓
java編程是極其嚴謹的,不容一絲差錯,寧可犧牲其靈活性也要保證其穩定性。有一次我在java編譯器里將類的名字命名為Test,結果一直報錯,而程序又找不出錯誤,想破腦袋也想不明白,后來請教別人,被某位碰到過相似問題的仁兄一語道破,原來java類里面已經隱含定義了Test類,我們又定義一次會讓編譯器錯亂,最后我把類名改了,果然可以運行了。真是一招不慎,滿盤皆輸。失之毫厘,差之千里,任何標點符號都不能出錯。
2.OO設計心得
(1).面向過程與面向對象的比較
面向過程與面向對象有什么區別,起初我是不太清楚的。通過這三次作業,我發現了不同之處。首先面向過程主要實現是用函數實現,函數之間沒有限制,可以相互調用,學了java以后,就感覺這種函數的調用比較亂,沒有章法。而面向對象就不同了,面向對象的主要實現是類,其中類里面又包含方法和屬性,有一個比較清晰的架構,而類的使用是通過對象的,不是直接可以使用的,這就與面向過程有明顯區別。面向對象的類是可以有多個對象的,通過對象來使用類里的各種方法和屬性,就與我們現實操作環境比較接近,因為我們現實生活中也是如此,比如都是人,但是人與人有不同的特性,不能稱之為同一個對象。java里就可以使用對象來解決個體的差異。這些就是面向過程與面向對象我的理解。
(2).面向對象設計的基本原則理解
java是由類組成的,類又由方法及屬性構成,面向對象是指,java的一切操作都通過對象來操作,只有對象可以使用類的方法及屬性,這就是面向對象的思想,不同的對象可以使用不同的它們自己所需的方法及屬性,就像我們人一樣,各取所需。
(3).OO編程思維的理解
由對象控制操作,面向對象程序設計,類里面定義方法屬性,對象來調用。java的特點:封裝,繼承,多態。
3.測試的理解與實踐
(1).測試對於編碼質量的重要性
測試對於java程序就像醫生對於人一樣,檢查哪里有漏洞,這個程序是否符合設計要求,達到預期效果,程序的健壯性如何。
(2).假如讓你設計測試用例,你會如何做
我不會泛濫測試,而是先觀察程序,覺得程序在哪個地方有漏洞,進而測試該點,讓程序測試邊界及特殊界限,極限測試,和功能測試,讓程序盡可能地健壯。
4.課程收獲
通過這三次的作業訓練,覺得自己算是知道java這種面向對象程序語言是怎么一回事了,知道怎么去寫java程序了,知道java的大體構造了。
5.對課程的建議
希望可以學習到更多的java知識。
6.接下來的學習計划
繼續完成java作業,盡可能拓展java學習,可以找些題目來練習,自己多動手練習,彌補不足。