作業03-面向對象入門


1. 本周學習總結

初學面向對象,會學習到很多碎片化的概念與知識。嘗試學會使用思維導圖將這些碎片化的概念、知識點組織起來。請使用工具畫出本周學習到的知識點及知識點之間的聯系。步驟如下:
1.1 寫出你認為本周學習中比較重要的知識點關鍵詞,如類、對象、封裝
1.2 用思維導圖將這些關鍵詞、關鍵概念組織起來。注意:一般來說不要在導圖中寫太多字。

參考資料:

XMind
如何使用XMind

2. 書面作業

1.以面向對象方式改造數據結構作業“有理數”(重點)

注意:屬性必須為private
1.1 截圖你主要代碼(需要在程序中出現你的學號姓名)並粘貼程序的git地址。
1.2 對比你的代碼與歷程的代碼,說明面向對象編程與面向過程編程有何區別?
參考資料:

有理數C語言例程下載
BigDecimal類的代碼,尤其是其中的方法設計。

2. 構造函數與初始化塊

2.1 結合PTA(構造函數與toString)說明構造函數有什么用?其形式有何特征?
2.2 如果一個類不寫構造函數,它有構造函數嗎?如果一個類中只有帶參的構造函數,它有沒有不帶參數的默認構造函數?
2.3 查看String類的源代碼,找出3個看得懂的String類的構造函數,並使用自己的話描述這3個構造函數的區別。
2.4 結合PTA(構造函數與初始化塊)說明初始化塊與構造函數的異同。並說明,初始化塊與構造函數誰先執行?初始化塊與靜態初始化塊有何不同,誰先執行?如果建立過個對象,靜態初始化塊會執行幾次?

3.代碼分析:Math類

3.1 使用java.lang.Math類的方法時,為什么不需要new出一個Math對象,然后調用該對象上相應的方法?
3.2 如果new Math()會產生什么錯誤?嘗試閱讀Math類源代碼,分析原因。
3.3 進一步:你覺得什么樣的對象需要new出來才能用,調用什么方法時不必創建相應對象就可以使用?(重點檢查)

4. 重載Overload

4.1 什么是重載?什么是構造函數重載?怎么才能區分兩個重載的方法?
4.2 在java.lang.Math類中舉出1個方法重載的例子?

5. 代碼閱讀: final

final修飾的變量不能改變,為什么如下代碼卻可正常運行?
final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;

6. Java8中的時間日期類:編寫函數public static boolean isMondayToFriday()

功能:判斷今天如果是周一到周五,返回true,返回false。main函數中調用該函數,如果為true則輸出“工作日+姓名學號”,否則輸出"休息+姓名學號"。
截圖:關鍵代碼。
提示:使用LocalDateTime, DayOfWeek類
參考資料:

JAVA 8:健壯、易用的時間-日期API - ImportNew.pdf
Java8DateTimeTest.java

7. 封裝

7.1 結合PTA(形狀),請用自己的話簡單總結一下面向對象中封裝是什么意思?有何好處?**
7.2 和封裝有關的關鍵字有哪些?

8. 結對編程實踐(未完成本次作業得0分)

找一個水平相近的同學完成1-2題實驗題。開始編程前,可先對內容進行討論。
寫出體驗報告,包括以下內容:1.對方姓名。2.所完成的題目。3.使用結對這種方法進行編程的感想(非實驗總結)。4.照片(上次很多同學並未貼照片,請貼上)

9. 選做:使用阿里巴巴靜態代碼掃描工具 掃描自己的代碼

9.1 簡述自己代碼中在規范方面出現的問題
9.2 如何解決這些問題

10. 選做:Runnable Jar

我們以前編寫的程序,必須打開Eclipse或者將相應的.class文件拷貝出來在命令行下執行相應命令才能運行,如果.class文件較多且類文件中有包名,需要將完整的目錄結構及文件拷貝出來,才能運行。現在希望將Eclipse項目中的Java文件打成一個可運行的jar包,在命令行直接運行。改造題目6,使其從命令行接收參數,參數為年-月-日,如1999-09-09。最后將項目打成可運行的jar包,然后在命令行通過java -jar 運行,並截圖。參考文件如下:

Eclipse生成Runnable jar

3. 碼雲及PTA

3.1. 碼雲代碼提交記錄

  • 在碼雲的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然后搜索並截圖

3.2 截圖PTA題集完成情況圖

本周完成(構造函數與toString,構造函數與初始化塊,形狀)
需要有兩張圖(1. 排名。2.提交列表)

3.3 統計本周完成的代碼量

需要將每周的代碼統計情況融合到一張表中,可使用最新版的代碼統計工具的-history參數,詳細用法見項目wiki地址。表格如下所示:

周次 總代碼量 新增代碼量 總文件數 新增文件數
1 200 200 3 3
2 500 300 7 4
3 600 100 8 1

參考文件:

第3周作業參考文件

其他:
5. 閱讀代碼EmployeeTest.java,回答:
5.1 為什么Employee類的屬性應設置為private?你覺得設置為public好不好,為什么?
5.2 為Employee類增加一個無參構造函數,調用其有參構造函數,設置name為雇員1, salary為3000, hireDay的年月日為2017年3月5日。(粘貼關鍵代碼)
5.2 為Employee類再增加一個有參構造函數,參數只有name與salary,hideDay為當前日期。(粘貼代碼)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM