Week04-面向对象设计与继承
Week04-面向?qū)ο笤O(shè)計(jì)與繼承
1. 本周學(xué)習(xí)總結(jié)
1.1 寫出你認(rèn)為本周學(xué)習(xí)中比較重要的知識(shí)點(diǎn)關(guān)鍵詞
重載 static 靜態(tài) final 繼承和多態(tài) 類型判定與類型轉(zhuǎn)換
抽象類
1.2 嘗試使用思維導(dǎo)圖將這些關(guān)鍵詞組織起來。注:思維導(dǎo)圖一般不需要出現(xiàn)過多的字。
1.3 可選:使用常規(guī)方法總結(jié)其他上課內(nèi)容
2. 書面作業(yè)
1. 面向?qū)ο笤O(shè)計(jì)(大作業(yè)1-該作業(yè)將作為以后其他作業(yè)的基礎(chǔ),請(qǐng)務(wù)必完成)
1.1 講故事:用50字以上講一個(gè)你在網(wǎng)上商城購(gòu)物或者在班級(jí)博客進(jìn)行學(xué)習(xí)的故事。使用Markdown的加粗標(biāo)記把關(guān)鍵名詞標(biāo)注出來,使用語句塊標(biāo)記把里面關(guān)鍵的動(dòng)詞標(biāo)注出來。講故事范例:見參考資料UML類圖中如何繪制類圖
每次晚上的時(shí)候購(gòu)物欲就會(huì)特別強(qiáng) 于是打開了馬云爸爸的淘寶商城
想買種草了很久的的一支口紅打開搜索框 ,輸入MAC chili 然后點(diǎn)擊 銷量?jī)?yōu)先 找到賣的最多的一款 發(fā)現(xiàn)是官網(wǎng)的 好評(píng)論很高
于是加入購(gòu)物車 猶豫一下 要不要支付買 糾結(jié)一下 嗯 還是買吧 女人嘛 要對(duì)自己好一點(diǎn) 點(diǎn)擊支付,輸入支付密碼然后 生成訂單 默默打開自己的支付寶 看了一眼余額 默默的留下了眼淚
1.2 找出系統(tǒng)中包含的類及其屬性、方法,類與類之間的關(guān)系,并繪制相應(yīng)類圖。注意:不一定非要體現(xiàn)繼承關(guān)系。只要能將系統(tǒng)描述完整即可。一開始設(shè)計(jì)的時(shí)候不要考慮太多,不要出現(xiàn)太多的類,僅出現(xiàn)必要的類,完成最小功能即可。對(duì)商城購(gòu)物系統(tǒng)建議只做購(gòu)物車模塊。
1.3 使用Java代碼實(shí)現(xiàn)這個(gè)系統(tǒng)(不必很完善)。粘貼運(yùn)行截圖與關(guān)鍵代碼。將來要在這個(gè)基礎(chǔ)上逐漸完善、擴(kuò)展成一個(gè)完整的面向?qū)ο蟮南到y(tǒng)。合作完成:2-3人一個(gè)小組。
可選:團(tuán)隊(duì)協(xié)作可使用git與碼云。在碼云中新建項(xiàng)目。所有隊(duì)員都應(yīng)在碼云中該項(xiàng)目下均應(yīng)有有提交記錄。截圖你們的提交記錄。
陳芳毅袁德興
參考資料:
UML類圖
UML類圖幾種關(guān)系的總結(jié)
使用Processon畫圖
面向?qū)ο蟀咐?借款者姓名地址.zip
代碼生成類圖Eclipse插件-ModelGoon
2. ManagerTest.zip代碼分析(繼承、多態(tài))
分析ManagerTest.zip中的代碼,回答幾個(gè)問題:
2.1 簡(jiǎn)述文件中表現(xiàn)出的繼承關(guān)系。哪些是共有方法,哪些是子類特有的屬性和方法?
Manager:super(n, s, year, month, day);
體現(xiàn)了繼承關(guān)系
共用方法:getName()
getSalary()
子類特有的屬性:bonus
子類特有的方法: setBonus(double b)
2.2 文件第26行e.getSalary(),到底是調(diào)用Manager類的還是Employee類的getSalary方法?
employ的方法
2.3 Manager類的構(gòu)造函數(shù)使用super調(diào)用父類的構(gòu)造函數(shù)實(shí)現(xiàn)了代碼復(fù)用,這樣有什么好處?為什么不把父類構(gòu)造函數(shù)中的相關(guān)代碼復(fù)制粘貼到Manager的構(gòu)造函數(shù)中,這樣看起來不是更直觀嗎?
省時(shí) 省力
避免再去重新定義了
可以少打代碼
代碼復(fù)制粘貼到Manager的構(gòu)造函數(shù)中,需要將父類屬性定義為protected,子類才能直接存取父類屬性,這樣就會(huì)對(duì)父類屬性造成一定的影響。
3. Object類中的toString與equals
3.1 編寫Fruit類,屬性String name。如果覆蓋其toString()方法,其父類中的toString方法的代碼就沒有了嗎?編寫Fruit的toString()方法,在該方法中要將調(diào)用父類的toString方法得到的字符串與自己特有的屬性name拼接起來,怎么編寫?(使用代碼展示)
父類中的方法依舊存在
3.2 為Fruit類編寫equals方法覆蓋父類相應(yīng)方法,功能為當(dāng)兩個(gè)Fruit對(duì)象name相同時(shí)(忽略大小寫),返回true。(使用代碼證明你自己覆蓋的equals方法是正確的)
3.3 完成3.2后,使用ArrayList fruitList存儲(chǔ)多個(gè)fruit,添加時(shí)要求如果要添加的fruit對(duì)象在fruitList中已存在就不添加,不存在就添加。編寫相關(guān)測(cè)試代碼。并分析ArrayList的contains代碼與equals方法有何關(guān)系?
提示:直接使用ArrayList的contains方法實(shí)現(xiàn)判斷對(duì)象是否存在。
4. 實(shí)驗(yàn)總結(jié):
4.1 PTA編程題(形狀-繼承)。并回答:在本題中使用多態(tài)為編程帶來了什么好處。
多態(tài)的好處就是減少了程序員的代碼量 實(shí)現(xiàn)了代碼的復(fù)用
可以讓子類和父類具有相同的方法 但是他們的實(shí)現(xiàn)的方法各有不同
4.2 PTA編程題(覆蓋)。并回答:編寫eqauls方法是需要注意些什么?
要去判斷傳入的是否是空
如果為空的時(shí)候就要返回flase
4.3 程序填空、函數(shù)題(1-3)。
1.用this調(diào)用函數(shù)即可 再編寫tostring即可
2.要注意是要先存入數(shù)組 再倒序輸出 如果遇到了null
要借用continue跳過
3.采用自動(dòng)生成再進(jìn)行修改
3. 碼云及PTA
題目集:[jmu-Java-03-面向?qū)ο?-基礎(chǔ)-封裝繼承]
3.1. 碼云代碼提交記錄
在碼云的項(xiàng)目中,依次選擇“統(tǒng)計(jì)-Commits歷史-設(shè)置時(shí)間段”, 然后搜索并截圖
3.2 截圖PTA題集完成情況圖
本周完成(形狀-繼承,覆蓋)
需要有兩張圖(1. 排名。2.PTA提交列表)
3.3 統(tǒng)計(jì)本周完成的代碼量
需要將每周的代碼統(tǒng)計(jì)情況融合到一張表中。
表格格式如下所示:
| 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 | 0 |
| 3 | 386 | 386 | 5 | 5 |
| 4 | 882 | 496 | 11 | 6 |
轉(zhuǎn)載于:https://www.cnblogs.com/HYSOUL/p/7666956.html
總結(jié)
以上是生活随笔為你收集整理的Week04-面向对象设计与继承的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。