201621123026《JAVA程序設計》 學習總結

Week03-面向對象入門

1. 本週學習總結

初學面向對象,會學習到不少碎片化的概念與知識。嘗試學會使用思惟導圖將這些碎片化的概念、知識點組織起來。請使用工具畫出本週學習到的知識點及知識點之間的聯繫。步驟以下:
1.1 寫出你認爲本週學習中比較重要的知識點關鍵詞,如類、對象、封裝等
1.2 用思惟導圖或者Onenote或其餘工具將這些關鍵詞組織起來。
關鍵詞:類與對象、數組、字符串、打包。java

2. 書面做業

1. 以面向對象方式改造數據結構做業‘有理數’(重點)

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

2. 構造函數與初始化塊

2.1 結合PTA 5(構造函數與toString)說明構造函數有什麼用?其函數格式有何特徵?
構造函數方便調用,也能夠在其餘類中使用,將函數主體放在main類外,能夠提升整個程序的可讀性。編程

2.2 若是一個類不寫構造函數,它有構造函數嗎?若是一個類中只有帶參的構造函數,它有沒有不帶參數的默認構造函數?
若是沒寫構造函數,默認會給一個無參構造函數。若是隻有帶參的構造函數,不會默認建立無參構造函數。數組

2.3 查看String類的源代碼,找出3個看得懂的String類的構造函數,並使用本身的話描述這3個構造函數的區別。數據結構

public int compareTo(String anotherString)
public String(String value)
public String substring(int beginlndex,int endlndex)
compareTo 是將兩個字符串從第一個字符開始比較並返回不等時兩個字符的ascill差值;
第二個函數是用一個已知的字符串value來穿件一個String;
substring是輸入兩個int型字符來截取一個字符串。函數

2.4 結合PTA(構造函數與初始化塊)說明初始化塊與構造函數的異同。並說明,初始化塊與構造函數誰先執行?初始化塊與靜態初始化塊有何不一樣,誰先執行?工具

初始化塊在構建對象的時候才執行,用於給全部對象進行統一的初始化,每新建一個對象就會執行一次;構造函數在對象創建完成後立刻執行,用於初始化隊形,並只在創建對象時執行一次。初始化塊比構造函數優先執行。
靜態初始化塊只在第一次加載類時才執行,用做對static變量做初始化。靜態初始化塊比初始化塊優先執行。學習

淺陌初心0702的博客
http://blog.sina.com.cn/u/55496638443d

3. 代碼分析:Math類

3.1 使用java.lang.Math類的方法時,爲何不須要new出一個Math對象,而後調用該對象上相應的方法?
Math類在JDK中是直接引用的,並不須要經過new來建立對象。
3.2 若是new Math()會產生什麼錯誤?嘗試閱讀Math類源代碼,分析緣由。
code

如圖,提示構造函數不可見。
在Math源碼中,方法都是靜態的,不參與對象實例的過程,因此是不能建立對象的。

3.3 進一步:你以爲什麼樣的對象須要new出來才能用,調用什麼方法時沒必要建立相應對象就能夠使用?(重點檢查)
我以爲通常是可以接受參數的構造函數的對象須要使用new,用static修飾的靜態方法不須要建立對象。

4. 重載Overload

4.1 什麼是重載?什麼是構造函數重載?怎麼才能區分兩個重載的方法?
4.2 在java.lang.Math類中舉出1個方法重載的例子?
重載就是在一個類中,多個方法使用同一個名稱可是參數不一樣。構造函數重載也是函數與類名都同樣,參數的類型不一樣。區別重載的方法能夠經過參數的不一樣來區別。


5. 代碼閱讀:final

final修飾的變量不能改變,爲何以下代碼卻可正常運行?
final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
final修飾的引用變量不會變,可是引用變量指向的對象仍是能夠改變的。

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

功能:判斷今天若是是週一到週五,返回true,返回false。main函數中調用該函數,若是爲true則輸出「工做日+姓名學號」,不然輸出"休息+姓名學號"。
截圖:關鍵代碼。
提示:使用LocalDateTime, DayOfWeek類

7. 封裝

7.1 結合PTA(形狀),請用本身的話簡單總結一下面向對象中封裝是什麼意思?有何好處?**
7.2 和封裝有關的關鍵字有哪些?
封裝就是將對象的屬性隱藏起來,在被調用時不須要知道隱藏的屬性就能夠直接使用,使調用更方便。
和封裝有關的關鍵字public private

8. 結對編程時間(未完成,0分)

找一個水平相近的同窗完成1-2題實驗題。開始編程錢,可先對內容進行討論。寫出體驗報告,包括如下內容:1.對方姓名。2.所完成的題目。3.感想。4.照片(上次不少同窗並未貼粘片,請貼上)
1.對方姓名:林志偉
2.完成題目:7-1 jmu-Java-03面向對象基礎-01-構造函數與toString
3.感想:此次結對編程我和林志偉同窗配合的很好,互相完成本身先負責的一部分,第一題進度很快。
4.照片:

3. 碼雲及PTA

3.1. 碼雲代碼提交記錄

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

3.2 截圖PTA題集完成狀況圖

須要有兩張圖(1.排名圖。2.PTA提交列表圖)

3.3 統計本週完成的代碼量

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

周次 總代碼量 新增代碼量
1 98 98
2 338 240
3 535 197

相關文章
相關標籤/搜索