本階段,本次部落格主要記錄所有作業後的思考,出現的問題以及我的解決辦法。
1.作業過程總結
①在這11次的pta作業中,難度逐漸上公升,涉及的知識面也隨著所學東西的增加而變廣。
②在前幾次作業中題目比較簡單,方便讓我們從面向過程的思想轉變為物件導向的思想。
③在後來慢慢接觸了許多新的東西,所學的東西多了,題目難度也就慢慢變高了,完成度也有點下降,但我還是收穫了許多。
④在後來的作業中基本上都運用到了物件導向的封裝性、繼承性與多型性三大技術特性。其中的封裝性基本上每道題都有用到,將每個類中的屬性設為私有,且每個類中都含 有setter、getter和構造方法。繼承性也是常用的,但其難度也是逐步提公升,首先是簡單的使用extends來體現繼承性,然後便是在此之上增加難度,使用子類繼承並重寫父類方法,使子類與父類的關係更加直觀化。在階段末期學習的多型化的概念,重寫compareto()介面,使**完成方便,體現了多型性靈活、抽象、行為共享、**共享的優勢特點。
2.oo設計心得
(1)面向過程與物件導向的區別與優缺點
①面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了;
②物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。
③面向過程的優點:效能比物件導向高,因為類呼叫時需要例項化,開銷比較大,比較消耗資源。
④面向過程的缺點:沒有物件導向易維護、易復用、易擴充套件
⑤物件導向的優點:易維護、易復用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護
⑥物件導向的缺點:效能比面向過程低
(2)對物件導向的幾大原則的理解
①單一職責原則:兩個完全不一樣的功能就不應該放在乙個類中
②開閉原則:讓程式更穩定、更靈活。軟體中的物件(類、模組、函式等)應該對於擴充套件是開放的,但是對於修改是封閉的。
③黎克特制替換原則:構建擴充套件性更好的系統。建立抽象,通過抽象建立規範,具體的實現在執行時替換掉抽象,保證系統的高擴充套件性、靈活性。
④依賴倒置原則:讓專案擁有變化的能力。模組間的依賴通過抽象發生,實現類之間不發生直接的依賴關係,其依賴關係是通過介面或抽象類產生的
⑤介面隔離原則:系統有更高的靈活性。類間的依賴關係應該建立在最小的介面上。介面隔離原則將非常龐大、臃腫的介面拆分成為更小的和更具體的介面,這樣客戶將會只需要知道他們感興趣的方法。
⑥迪公尺特原則:更好的可擴充套件性。乙個物件應該對其他物件有最少的了解。
(3)對物件導向三大技術特性之間關係的理解
封裝:就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏,防止一些意外使其改變,減小錯誤的風險。
繼承:可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件,通過繼承建立的新類稱為「子類」。這一特性極度方便了**的編寫。
多型:允許你將父物件設定成為和乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡單的來說,多型便是允許將子類型別的指標賦值給父類型別的指標。
3.測試的理解與實踐
測試對於編碼質量的重要性
乙個完成的**,對其進行多次的測試是十分重要的,測試能發現到其中蘊含的問題,幫助我們修改完善**。在測試時,我們通常會用其邊界以及特殊值來進行測量,提高**的精準性。
4.課程收穫
(1)oo程式設計思維的理解
物件導向的特點有:抽象、封裝、繼承、多型,我對其思想的理解即為:將乙個大問題看作複數的小問題,然後通過乙個個的類來解決乙個個的小問題,從而達到解決這個大問題,如果其中的某一或幾個類出現問題,並不會影響到其他類的執行,修改的時候也會方便,這便是我認為的物件導向的思維。
(2)類設計心得
首先在設計類之前要認識到物件導向中的四大基本特性和七大設計原則,然後進行類名設計時,類名最好與其功能有一定聯絡,方便日後的查詢與修改,不會讓人無頭緒。然後要注意乙個類解決乙個問題。
5.對課程的建議
1.希望老師上課講解的時候能稍微慢一點,有時候低頭記了一下筆記就不知道老師在講**了
2.希望老師上課講解的時候能夠多講解一些題目,這樣更好理解
3.希望pta上的題目能多出一點簡單的題目
階段性總結
今天聽學長交流了一些人生的經驗,便有了一些感觸,加上對自己最近的學習狀態的總結,就寫一篇部落格給自己一點指示。最近渾渾噩噩的,有幾次考試也沒考好,考後也沒總結。晚自習本想刷一些題,複習一下,或是學習一點技術。看見其他同學在打擺,便動搖了。最後心中也只是徒留深深的罪惡感。所以我也是時候對自己的未來進行...
階段性總結
感覺上個星期還挺痛苦的,因為要練演算法,每個人都告訴我說演算法很重要很重要,但是演算法對我來說就像是一根很亂的神經,一觸就炸了,可我的驕傲還不允許我放棄。在leetcode上練習的時候是直接告訴用什麼方法,在寫藍橋杯演算法的時候就像是閱讀理解,經常讀不懂是什麼意思,要不就是理解錯誤,追根究底還是做的...
自考階段性總結
週六日這兩天的自學考試就這樣隨著落日再是告一段落,這是自己經歷的第三次自考。就著這一步走來的歷程著實令人緊張而又亢奮的,一次次的考試,乙個個課程的考試,讓我們朝著自考畢業證更進一步。總體而言,自學考試的經歷實在難稱完美。頓時轉折自己的學習需要不斷總結,需要針對這一屆的學習方法來個總結,思考這樣的學習...