0、 前言
本次部落格主要針對oop課程的第二階段的學習進行一系列的說明,也是oop課程第二階段的第四次作業,對第二階段的前三次作業進行乙個總結與思考,對作業過程中遇到的問題進行乙個總結,為接下來的學習打好鋪墊。
1、 作業過程總結
① 三次作業之間的知識迭代關係『
第一次作業利用圖形來對類的繼承進行乙個訓練,讓我初步接觸到了類與類之間的繼承關係,對父類與子類有了乙個初步的了解,子類能夠繼承和呼叫來自父類的公共方法,在解決問題的過程中更加便利了我們的操作。
第二次作業同樣也是利用了圖形對類的多型性進行了訓練,讓我很好的從類的繼承性過渡到了類的多型性,所謂的「多型」,簡單的理解就是物件在不同情況下的不同表現,具體體現在定義和功能兩個方面,極大的增加了**的可復用性。
第三次作業重點訓練類的封裝性、繼承性、多型性以及抽象類、介面的應用,同時,對「單一職責」原則以及「開-閉」原則在物件導向設計中進行了乙個具體的應用。
② 理解物件導向的封裝性、繼承性與多型性三大技術特性的過程
封裝性:在幾次作業的過程中,在建立乙個類的物件後,如果這個類的屬性沒有私有化,我們能夠對其類中的屬性進行賦值操作,這時,會牽一髮而動全身,導致**出現許多問題,但是我們如果夠將其類中的屬性私有化,就不能夠直接對其進行賦值操作,得以體現類得封裝性。
繼承性:在做圖形類題目的時候,類shape與其他圖形類存在明顯的繼承關係,可通過繼承直接呼叫父類shape的公用方法,極大提高了**的可復用性。
多型性:在做圖形類題目的時候,有許多物件,它們都具有共同的乙個父類時,當這些物件接收到同乙個訊息時,能夠進行不同的操作,如通過父類的引用產生子類的物件,體現了類的多型性。
③ 作業過程中遇到的問題及解決方法
問題:在dealcardlist類中,類的屬性cardlist是接收card型別的,而建構函式中的list 是只接收integer型別的,建構函式的編譯出現問題。
解決方法:通過list中的整形數來判斷card上圖形的型別來對dealcardlist類中的屬性進行賦值。
問題:圖形shape與卡片card關係銜接不上。
解決方法:利用類的多型性來解決。
④ 每次作業花費的時間比例
第一次作業:7天
第二次作業:7天
第三次作業:2天
一:二:三 = 7 :7:2
⑤ 對程式設計過程的嚴謹性的認識及教訓
程式設計的嚴謹性是非常重要的,一絲一毫都不能疏忽,哪怕是單詞拼寫的錯誤,都會造成一系列的錯誤反應,就比如在拼寫rectangle的時候,r沒有大寫,導致很久都沒有找到原因,浪費了大量的時間。
2、oop設計心得
①對物件導向三大技術特性之間關係的理解
物件導向三大技術指的是類的封裝性、類的繼承性與類的多型性,三者在編譯**和提高**的質量的過程中起著非常重要的作用,類的封裝性為類的繼承性與多型性提供了基礎,防止牽一髮而動全身,導致整個**出現了問題,類的繼承性同時為類的多型性提供了許多便利之處,當不同物件接收到同乙個資訊的時候,能夠產生不同的操作,整體上提高了**的質量與執行效率。
②物件導向設計的基本原則理解(單一職責原則及「開-閉」原則)
單一職責原則:如果乙個類承擔了多種職責,耦合度會變得非常高,當其中一種職責發生變化的時候,其他職責也可能隨之發生改變,就會改變完成其他職責的能力,有著牽一髮而動全身的隱患,所以要提高**的質量,就要降低**的耦合度,提高內聚性,每個類就完成乙個職責。
③oo程式設計思維的理解
oo程式設計一定要具有嚴謹的思維,不可對任何地方有一絲馬虎,否則可能因為一點小失誤而引發重大後果,會浪費了大量的時間,在程式設計時一定要遵循物件導向的基本原則(單一職責原則與開閉原則),否則**的質量不高,具有oo程式設計思維能夠提高我們寫**的效率與質量。
④ 類設計心得
設計類的時候,一定要遵循單一職責原則,乙個類就完成乙個職責就好,並且類一定要具有封閉性,類中的屬性一定要是私有的,要獲得或給其賦值必須另寫公有的方法來獲取。
3、測試的理解與實踐
①測試對於編碼質量的重要性
測試能夠讓我們知道我們編譯的**的正確性,當**出現問題的時候,我們能夠通過測試很容易的知道我們錯誤的地方,並對其進行修正,還能夠很好的對其進行優化,提高**的質量。
②查閱資料,假設使用junit進行程式的測試是否可行
junit是j**a的乙個單元測試框架,能夠實現全自動測試,使用起來非常方便。
4、課程收穫
這四周來在oo方面的教訓及收穫:
通過這四周的練習,讓我學會了通過類圖去填寫程式,完成任務,找到各個類之間的關係,遵循物件導向的基本原則,能夠思路清晰的寫出題目來,類與類之間的設計盡量要降低耦合度,提高內聚性,以此來優化**,提高**的質量。
5、對課程的建議
①第三階段作業難度、題量的建議
第三階段的作業題量應有所增加,難度也應該有所提高,起到乙個承上啟下的作用,題與題之間應該具有知識迭代關係。
②課程內容講解方面的建議
課程講解希望能夠多列舉具體例子分析來講解,在具體例子中講解如何優化**,如何提高**的質量。
第二階段衝刺報告
恢復內容開始 個人工作總結 第二階段 日期昨天幹了什麼 今天準備幹什麼 遇到的困難 第1天 在字型和按鈕大小的方面不合適 使用者體驗感不高 所以對介面重新設計 備註資訊不方便加 暫時先不加 第2天介面設計 為軟體新增本地資料庫 id出現的問題已解決 第3天為軟體新增本地資料庫 進行了主頁面功能和布局...
第二階段小結
資料結構基本概念 資料 資料即資訊的載體,是能夠輸入到計算機中並且能被計算機識別,儲存和處理的符號總稱 資料元素 資料元素是資料的基本單位,又稱之為記錄。一般,資料元素由若干基本項 字段,域,屬性 組成。資料結構 資料結構指的是資料元素及資料元素之間的相互關係,或組織資料的形式 資料之間的結構關係 ...
第二階段小結
先是pta上的作業 這題要求我們熟練的掌握類之間的繼承與多型的使用,在類與類之間傳遞資訊時不能弄混,要弄清楚單一職責原則。這一題主要考察繼承與多型,泛型容器的應用。接下來是學習通上的課後作業 第乙個是單向鍊錶 單向鍊錶由乙個個的節點組成,這些節點都帶有下乙個節點的引用,最後乙個節點指向null,這樣...