201621123047《java程序設計》第四周學習總結

1. 本週學習總結

1.1 寫出你認爲本週學習中比較重要的知識點關鍵詞

  • 繼承、覆蓋、多態java

    1.2 嘗試使用思惟導圖將這些關鍵詞組織起來。注:思惟導圖通常不須要出現過多的字。

2. 書面做業

2.1 面向對象設計(大做業1-該做業將做爲之後其餘做業的基礎,請務必完成)

2.1.1 講故事:用50字以上講一個你在網上商城購物或者在班級博客進行學習的故事。使用Markdown的加粗標記把關鍵名詞標註出來,使用語句塊標記把裏面關鍵的動詞標註出來。講故事

  • 小華想買一隻手機,打開淘寶頁面,輸入淘寶帳號登入,在·搜索框裏輸入本身想要買的華爲手機類型,而後在篩選條件中選擇包郵、按銷量優先排序,進入一家銷量不錯的店家,查看評論區的評論,以爲用戶評價都很不錯,因而就下單購買,數量選擇1,肯定支付,輸入密碼,完成購物。

2.1.2 找出系統中包含的類及其屬性、方法,類與類之間的關係,並繪製相應類圖。注意:不必定非要體現繼承關係。只要能將系統描述完整便可。一開始設計的時候不要考慮太多,不要出現太多的類,僅出現必要的類,完成最小功能便可。對商城購物系統建議只作購物車模塊。

  • (1)User類:
String userName
String userAccount 
String password
  • 方法:
public boolean login()
  • (2)Good類
String goodName
double price
int num
  • 方法
public void addnum()
public void cutnum()
  • (3)Evaluation類//用戶評價區
String userName //用戶名
String type //評價類型
String content //評價內容
  • 方法
public void addcontent()
  • (4) Shopcar購物車
String goodName 
int num
double price
double sumprice
  • 方法:
public void addorder()
public void delorder()
  • (5)search類
String searchContent
  • 方法:
public void accord()

2.1.3 使用Java代碼實現這個系統(沒必要很完善)。粘貼運行截圖與關鍵代碼。未來要在這個基礎上逐漸完善、擴展成一個完整的面向對象的系統。合做完成:2-3人一個小組。

合做;韓燁、袁德興編程

  • 商品
  • 購物車

2.2 ManagerTest.zip代碼分析(繼承、多態)

分析ManagerTest.zip中的代碼,回答幾個問題:

2.2.1 簡述文件中表現出的繼承關係。哪些是共有方法,哪些是子類特有的屬性和方法?

  • Manage類繼承 Employee類
  • 共有方法:
public Employee(String n, double s, int year, int month, int day)
public String getName()
public double getSalary()
public Date getHireDay()
public void raiseSalary(double byPercent)
  • 子類特有的屬性:private double bonus
  • 子類特有的方法:ublic void setBonus(double b)markdown

    2.2.2 文件第26行e.getSalary(),究竟是調用Manager類的仍是Employee類的getSalary方法?

  • staff[0]調用Manager類的l,而staff[1]和staff[2]調用Employee類的。函數

    2.2.3 Manager類的構造函數使用super調用父類的構造函數實現了代碼複用,這樣有什麼好處?爲何不把父類構造函數中的相關代碼複製粘貼到Manager的構造函數中,這樣看起來不是更直觀嗎?

  • 好處:能夠減小代碼量
  • 雖然直觀,可是代碼增長了,後面想要修改代碼也很費時間。學習

2.3. Object類中的toString與equals

2.3.1 編寫Fruit類,屬性String name。若是覆蓋其toString()方法,其父類中的toString方法的代碼就沒有了嗎?編寫Fruit的toString()方法,在該方法中要將調用父類的toString方法獲得的字符串與本身特有的屬性name拼接起來,怎麼編寫?(使用代碼展現)

2.3.2 爲Fruit類編寫equals方法覆蓋父類相應方法,功能爲當兩個Fruit對象name相同時(忽略大小寫),返回true。(使用代碼證實你本身覆蓋的equals方法是正確的)

2.3.3 完成3.2後,使用ArrayList fruitList存儲多個fruit,添加時要求若是要添加的fruit對象在fruitList中已存在就不添加,不存在就添加。編寫相關測試代碼。並分析ArrayList的contains代碼與equals方法有何關係?

提示:直接使用ArrayList的contains方法實現判斷對象是否存在。測試

2.4. 實驗總結:

2.4.1 PTA編程題(形狀-繼承)。並回答:在本題中使用多態爲編程帶來了什麼好處。

-多態對代碼具備可替換性、擴充性、靈活性、簡化性。ui

2.4.2 PTA編程題(覆蓋)。並回答:編寫eqauls方法是須要注意些什麼?

  • equals 要注意null的狀況。lua

    2.4.3 程序填空、函數題(1-3)。

  • 6-1 沒有完成
  • 6-2 按照題目要求來就0k
  • 6-3 須要注意如下的狀況:
    重寫equals方法的要求:
  • 一、自反性:對於任何非空引用x,x.equals(x)應該返回true。
  • 二、對稱性:對於任何引用x和y,若是x.equals(y)返回true,那麼y.equals(x)也應該返回true。
  • 三、傳遞性:對於任何引用x、y和z,若是x.equals(y)返回true,y.equals(z)返回true,那麼x.equals(z)也應該返回true。
  • 四、一致性:若是x和y引用的對象沒有發生變化,那麼反覆調用x.equals(y)應該返回一樣的結果。
  • 五、非空性:對於任意非空引用x,x.equals(null)應該返回false。設計

3. 碼雲及PTA

題目集:[jmu-Java-03-面向對象1-基礎-封裝繼承]code

3.1. 碼雲代碼提交記錄

在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖

  • 出現了小問題,事後補。

    3.2 截圖PTA題集完成狀況圖

本週完成(形狀-繼承,覆蓋)
須要有兩張圖(1. 排名。2.PTA提交列表)

3.3 統計本週完成的代碼量

須要將每週的代碼統計狀況融合到一張表中。
表格格式以下所示:

周次 總代碼量 新增代碼量 總文件數 新增文件數
1 86 86 5 5
2 468 382 15 10
3 818 350 21 6
5 1421 403 31 10
相關文章
相關標籤/搜索