1.1 寫出你認爲本週學習中比較重要的知識點關鍵詞
繼承、多態、覆蓋、抽象類
1.2 嘗試使用思惟導圖將這些關鍵詞組織起來。注:思惟導圖通常不須要出現過多的字。git
1.3 可選:使用常規方法總結其餘上課內容。編程
1.1 講故事:用50字以上講一個你在網上商城購物或者在班級博客進行學習的故事。使用Markdown的加粗標記把關鍵名詞標註出來,使用語句塊標記把裏面關鍵的動詞標註出來。數組
我登陸
網上購物商城,瀏覽裏面的商品,碰見喜歡的便點擊查看
商品的屬性,如品質或者價格。中意的就將商品放入
購物車。瀏覽結束後查看購物車總價並結算
。函數
1.2 找出系統中包含的類及其屬性、方法,類與類之間的關係,並繪製相應類圖。注意:不必定非要體現繼承關係。只要能將系統描述完整便可。一開始設計的時候不要考慮太多,不要出現太多的類,僅出現必要的類,完成最小功能便可。對商城購物系統建議只作購物車模塊。學習
1.3 使用Java代碼實現這個系統(沒必要很完善)。粘貼運行截圖與關鍵代碼。未來要在這個基礎上逐漸完善、擴展成一個完整的面向對象的系統。合做完成:2-3人一個小組。
可選:團隊協做可以使用git與碼雲。在碼雲中新建項目。全部隊員都應在碼雲中該項目下均應有有提交記錄。截圖大家的提交記錄。測試
GIT地址ui
分析ManagerTest.zip中的代碼,回答幾個問題:
2.1 簡述文件中表現出的繼承關係。哪些是共有方法,哪些是子類特有的屬性和方法?
文件中Manager
經過extends
繼承於Employee
,其中的共有方法有:
public Employee(String n,double a,int year,int month,int day);
public String getName();
public double getSalary()
public Date getHireDay()
public void raiseSalary(double byPercent)
其中的特有屬性和方法有:
private double bonus;
public void setBonus(double b);
設計
2.2 文件第26行e.getSalary(),究竟是調用Manager類的仍是Employee類的getSalary方法?
數組staff[0]
調用的是Manager類中的方法,staff[1]
和staff[2]
都是調用的Employee類的方法。code
2.3 Manager類的構造函數使用super調用父類的構造函數實現了代碼複用,這樣有什麼好處?爲何不把父類構造函數中的相關代碼複製粘貼到Manager的構造函數中,這樣看起來不是更直觀嗎?
代碼複用避免了代碼的重複冗餘,使代碼更具可讀性,方便後期修改維護。對象
3.1 編寫Fruit類,屬性String name。若是覆蓋其toString()方法,其父類中的toString方法的代碼就沒有了嗎?編寫Fruit的toString()方法,在該方法中要將調用父類的toString方法獲得的字符串與本身特有的屬性name拼接起來,怎麼編寫?(使用代碼展現)
3.2 爲Fruit類編寫equals方法覆蓋父類相應方法,功能爲當兩個Fruit對象name相同時(忽略大小寫),返回true。(使用代碼證實你本身覆蓋的equals方法是正確的)
3.3 完成3.2後,使用ArrayList
提示:直接使用ArrayList的contains方法實現判斷對象是否存在。
4.1 PTA編程題(形狀-繼承)。並回答:在本題中使用多態爲編程帶來了什麼好處。
這裏將Rectangle和Circle繼承於Shape類,減小了代碼冗餘,多態讓類之間的關係不受到影響。
4.2 PTA編程題(覆蓋)。並回答:編寫eqauls方法是須要注意些什麼?
注意不能遺漏null
4.3 程序填空、函數題(1-3)。
題目集:[jmu-Java-03-面向對象1-基礎-封裝繼承]
3.1. 碼雲代碼提交記錄
在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖
3.2 截圖PTA題集完成狀況圖
本週完成(形狀-繼承,覆蓋)
須要有兩張圖(1. 排名。2.PTA提交列表)
3.3 統計本週完成的代碼量
周次 | 總代碼量 | 新增代碼量 |
---|---|---|
1 | 98 | 98 |
2 | 338 | 240 |
3 | 535 | 197 |
4 | 705 | 170 |