日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

201621123021《JAVA程序设计》第五周学习总结

發布時間:2024/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201621123021《JAVA程序设计》第五周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

201621123021《JAVA程序設計》第五周學習總結

1. 本周學習總結

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

  • 接口、comparator接口、comparable接口、has-a

1.2 嘗試使用思維導圖將這些關鍵詞組織起來。

?

2. 書面作業

1. 面向對象設計大作業(團隊項目,2-3人)

內容:繼續完善上次的大作業。

1.1 項目簡介表格

學生負責任務博客地址
簡卓林Storegit[https://gitee.com/TongCan/ShoppingCart.git]
董明超Good、ShoppingCartgit

1.2 系統常用功能框架圖

1.3 系統總體類圖

?

1.4 購物車、商品、系統關鍵代碼截圖

購物車

import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList;public class ShoppingCart {private ArrayList<Good> goods = new ArrayList<>();public void add(Good good){ //購買商品==將商品放入購物車 goods.add(good);}@Overridepublic String toString() {return "ShoppingCart{" +"goods=" + goods +"}";}public BigDecimal sum(){BigDecimal res = new BigDecimal(0);for (Good good : goods) {res=res.add(good.getPrice());}return res;}public void deleteGood(int index){goods.remove(index-1);}public void deleteGood(Good o){goods.remove(o);} }

?

商品

import java.math.BigDecimal;public class Good {private BigDecimal price;private String name;private int number;public Good(BigDecimal price, String name) {this.price = price;this.name = name;}public BigDecimal getPrice() {return price;}public void setPrice(BigDecimal price) {this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Good{" +"price=" + price +", name='" + name + '\'' +"}";}//數量編輯public int getNumber() {return number;}public void setNumber(int number) {this.number = number;} }

?

商家

import java.math.BigDecimal;public class Good {private BigDecimal price;private String name;private int number;public Good(BigDecimal price, String name) {this.price = price;this.name = name;}public BigDecimal getPrice() {return price;}public void setPrice(BigDecimal price) {this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Good{" +"price=" + price +", name='" + name + '\'' +"}";}//數量編輯public int getNumber() {return number;}public void setNumber(int number) {this.number = number;} }

?

1.5 其他:跟上次的系統比較,系統的設計等有何修改。其他感想。

  • 更上一次系統相比本次系統的功能變得更多,更加強大。通過本次大作業我明白了面向對象的重要性。

2. abstract:閱讀GuessGame抽象類的設計與使用源代碼

2.1 Guess改造前代碼很簡單,而改造后的代碼使用了抽象類、抽象方法,看起來更復雜,這樣的改造到底有什么好處呢?

  • 使用抽象類、抽象方法能夠使子類更加方便的實現多態。

2.2?GuessGame(改造后).java中有抽象方法與非抽象方法,你覺得抽象類中什么樣的方法應該聲明為abstract,什么方法不需要聲明為abstract直接實現即可。

  • 當我們想要一個類實現不同的功能時可以使用抽象類。
  • 當我們想要對類實現特定功能時可以不適用抽象類。

2.3 重要:在這個例子中,變化的是什么,不變的是什么?嘗試結合abstract等概念進行說明。

  • 變化的是類從非抽象類變成了抽象類。
  • 不變的是游戲的猜數字功能并沒有發生改變。

3. Comparable與Comparator

3.1 結合PTA 7-1中你的代碼說明,為什么某個類實現了Comparable接口,就可以直接使用Arrays.sort對該類型的數組進行排序?

public PersonSortable(String name, int age) {super();this.name = name;this.age = age;}

?

  • 因為Comparable接口中包含著對于數組的創建,所以可以使用Arrays.sort進行排序。

3.2 結合PTA 7-2 中你的代碼說明,有了Comparable接口為什么還需要Comparator接口呢?

  • 因為本題需要進行兩種排序方式,一種按照年齡排序,一種按照姓名排序,此時Comparable接口被占用,則還需使用Comparator接口進行比較。

3.3 以前的作業Shape,Rectangle,Cirlce中,Shape類中什么方法應聲明為abstract?說出原因。

  • Shape重計算周長的函數getPerimeter()和計算面積的函數getArea()應聲明為abstract,因為面積和周長在不同的圖形中實現功能的方法不一樣。

3.4 有很多Shape類型對象如Rectangle、Circle。希望使用Arrays.sort對他們進行排序,請寫出相應代碼。并簡述應在哪個類上實現Comparable接口比較好?

public int CompareTo(Shape o){if(this.getPerimeter()-o.getPerimeter()<0)return -1;else if(this.getPerimeter()-o.getPerimeter()>0)return 1;elsereturn 0; } Array.Sort(Shape);

?

  • 應在Shape中實現Comparable接口比較好,應為不管是周長還是面積都是包含在Shape類中。

3.5 以3.4你編寫的代碼為例,簡述面向Comparable接口編程、面向父類編程的好處。

  • 面向接口編程和面向父類編程可以提高函數的靈活性,如題3.4中我對于面積、周長的比較程序靈活的選擇比較方法。

4. 面向接口案例分析

4.1 a.畫出類關系圖。b.StudentDao接口有什么用?

?

  • b.StudentDao的作用是作為程序的接口,進行讀、寫、輸出功能。

4.2?StudenDaoListImpl與StudentDaoArrayImpl有何共同之處?有何區別?

  • 共同之處:都是用來存儲學生信息的類。
  • 區別:StudenDaoListImpl通過列表的方式來存儲數據,而StudentDaoArrayImpl通過數組的方式來存儲數據。

4.3 結合Test.java中的main函數,簡述面向接口編程的好處。

  • 面向接口編程提高了程序了靈活性,如Test.java中數據的后臺來源可能不一樣,但是卻可以正確使用。

5. 什么是面向接口編程?面向接口編程的好處是什么?

  • 面向接口編程即不管后臺數據是怎樣的形式,程序都可以對這些數據進行正確的處理,如題目中Test.java,我們有兩個數據后臺一個是List另一個是Array,接口可以對他們進行正確的處理,來實現對學生信息的正確處理。
  • 面向接口編程的好處是提高程序運行的廣度,能夠讓數據對象成為一個集合,然后再進行統一處理。

3.碼云及PTA

3.1. 碼云代碼提交記錄

?

3.2 截圖PTA題集完成情況圖

?

3.3 統計本周完成的代碼量

周次總代碼量新增代碼量總文件數新增文件數
10000
20000
30000
443743777
5905468136

轉載于:https://www.cnblogs.com/wenzun/p/7705183.html

總結

以上是生活随笔為你收集整理的201621123021《JAVA程序设计》第五周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。