0.前言
編程
應老師要求,開通博客,對前四周的學習內容進行一次總結。
函數
1.做業過程總結
性能
①總結三次做業之間的知識迭代關係:前三次的做業之間的迭代關係是有的,第一次的做業主要是入門級別的Java代碼編寫,在掌握了一些基礎的Java輸入輸出後,能夠利用大部分的C語言知識進行程序編寫,問題不會太大;第二次做業則須要更爲進一步的Java理論知識後才能完成代碼的編寫,最主要的一部分是掌握了類這樣一個在Java中的屬性,但主體與第一次做業沒有太大的區別;第三次做業則是給出了主函數,和相關的類要咱們去填寫類裏面的具體程序,這次做業較爲複雜,可是當你掌握了類與類之間的關係後,能夠利用前兩次做業積累下來的經驗來完成,同時此次做業也爲咱們更進一步的學習面向對象打下良好的基礎。
學習
②如何經過做業逐步從面向過程過渡到面向對象:這三次做業有着一次次遞進的關係,這種關係就是由面向過程到面向對象的過分。第一次的做業其實在咱們學習C語言的時候就作過相相似的題目,此次的Java編程其實大致上與C語言沒什麼區別,是面向對象的,是Java中最爲基礎的;到了第二次做業就有點面向對象的意思了,其實這些題目我在學習C語言的時候就有觸及,我所寫的代碼核心與C語言也沒有太多的差別,題目中要求咱們所使用的Main類中必須有的方法其實就是面向對象到面向過程的銜接;第三次做業則更好的詮釋了面向對象是怎麼一回事,題目中給出的設計類圖很好地代表了類與方法相互影響這一關係,一個問題用兩種不一樣的方法來解就是由面向過程到面向對象,方法之間互相影響的關係讓人印象深入。
測試
③做業過程當中遇到的問題及解決方法:隨着做業難度的加大,遇到的問題也有小變大。第一次做業中遇到的是一些小問題,好比在計算稅率這一題中我傻乎乎的算出每一個階段應該交的錢再加上多出來的部分,可是這樣的結果老是出錯,因此我只好將代碼換成一些公式這樣纔不會出錯。在判斷三角形類型是老是不能判斷出等腰直角三角形,在詢問了同窗以後知道運用(a==b&&a*a+b*b-c*c<0.001&&a*a+b*b-c*c>-0.001)||(a==c&&a*a+c*c-b*b<0.001&&a*a+c*c-b*b>-0.001)||(c==b&&b*b+b*b-a*a<0.001&&b*b+b*b-a*a>-0.001)來判斷;在第二次做業中,常常遇到的問題就是邊界錯誤,當我輸入2020 12 31後顯示Wrong Format,正確的答案應該輸出Next date is:2021-1-1,爲解決這一問題我花費好長的時間去修改個人代碼,最終只好將這一狀況做爲特殊的例子進行處理。在求前N天這一題中,我對平年2月29日老是錯誤測試,後來我也只好將這一一天單獨拿出來;在第三次做業中,面對有點陌生的設計類圖每每不能準確的明白這其中想要表達的意思,一系列的類和方法成爲我是否成功編寫成功的絆腳石,到了我寫下這篇博客的一天也沒法完成,可是經過不間斷的學習我總會學會的。編碼
④每次做業花費的時間比例:第一次做業每題花費的時間在一個小時左右;第二次做業總共花費了大概兩天的時間;第三次做業花費的時間最久。
spa
⑤對編程過程的嚴謹性的認識及教訓:以前學習過的C語言我就對編程的嚴謹性有着深入的認知,現在的Java更是讓我對編程過程的嚴謹性有了更新一步的認知。在編程的過程當中,常常會犯一些在語法上的小錯誤,在看似正確的狀況下卻得不出想要的答案,就是這樣的一些小錯誤卻要花費大量的時間來查找,這樣的時間每每比編寫程序的時間都要長,這無疑是浪費時間的,加入咱們在編寫程序的時候想得更爲完整,思考的更爲精密,或許就不會出現這樣的問題,隨着咱們知識的掌握,這種問題會愈來愈少。
設計
2.OO設計心得
orm
①面向過程與面向對象的比較:面向過程的優勢爲性能比面向對象高,由於類調用時須要實例化,開銷比較大,比較消耗資源;好比單片機、嵌入式開發、 Linux/Unix等通常採用面向過程開發,性能是最重要的因素。缺點是沒有面向對象易維護、易複用、易擴展;面向對象的優勢是易維護、易複用、易擴展,因爲面向對象有封裝、繼承、多態性的特性,能夠設計出低耦合的系統,使系統 更加靈活、更加易於維護。缺點是性能比面向過程低。
對象
②面向對象設計的基本原則:單一職責原則、開放封閉原則、Liskov替換原則、依賴倒置原則、接口隔離原則。:
③OO編程思惟的理解:面向對象將事物都當作對象,將具備相同特徵的實物看做類。經過對類與對象的繼承,封裝,多態的實現,完成模擬現實從而決絕問題。
3.測試的理解與實踐
①測試對於編碼質量的重要性:一個好的編碼必需要通過不斷的測試纔可以使用,假如一個編碼經不起屢次的測試,純在諸多的bug,這必然是一個不合格的代碼,這種編碼是不能用在系統上的,這會引發諸多的問題。
②假如讓你設計測試用例,你會如何作:選擇一些較爲特殊的例子進行測試和用一些例子反覆測試多變。
4.課程收穫
明白了面向對象與面向過程的一些本質的區別,對面向對象有了一些基本的瞭解,會使用簡單的Java語言去解決一些相對簡單的問題。要認真的對待每一次做業,思考老師上課講的主要問題,及時完成課堂上老師留下來的課堂做業。
5.對課程的建議
沒有太多的建議,一切良好,本身須要不斷努力。