Week03-面向對象入門

1. 本週學習總結

1.1寫出你認爲本週學習中比較重要的知識點關鍵詞,如類、對象、封裝等。
關鍵詞:類、方法、屬性、對象、多態、繼承、封裝、面向對象。
1.2 用思惟導圖或者Onenote或其餘工具將這些關鍵詞組織起來。
java

2.書面做業

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

1 截圖你主要代碼(須要在程序中出現你的學號和姓名)並粘貼程序的git地址。
2 對比你的代碼與歷程的代碼,說明面向對象編程與面向過程編程有何區別?
面向對象編程是抽象的,主要用到類,是一個封閉的環境而面向過程的編程更加註重於如何使用函數去實現既定的功能。git

2. 構造函數與初始化塊

1 結合PTA 5(構造函數與toString)說明構造函數有什麼用?其函數格式有何特徵?
構造函數能夠用來在建立對象時對其屬性作一些初始化的操做。 函數特徵有:構造函數的特徵,構造函數名稱與類名相同 以及無返回類型。無參數構造函數時,直接輸出題目要求的內容,有參構造時,要用到this關鍵字。
2 若是一個類不寫構造函數,它有構造函數嗎?若是一個類中只有帶參的構造函數,它有沒有不帶參數的默認構造函數?
有構造函數,編譯器會默認的生成構造函數。沒有。若是建立了有參數的構造函數,編譯器就沒法默認生成構造函數。
3 查看String類的源代碼,找出3個看得懂的String類的構造函數,並使用本身的話描述這3個構造函數的區別。編程

System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);>這之中所含的參數不一樣。
4 結合PTA(構造函數與初始化塊)說明初始化塊與構造函數的異同。並說明,初始化塊與構造函數誰先執行?初始化塊與靜態初始化塊有何不一樣,誰先執行?
相同點:二者都是給對象初始化。不一樣點:兩個範圍不一樣,初始化塊的做用是給全部對象初始化,而構造函數的做用是給對應函數初始化。初始化塊先執行。
靜態初始化只執行一次,而初始化塊有幾個new就執行幾回,並且在初始化加載時還有執行一次,靜態初始化先執行。>安全

3代碼分析:Math類

1 使用 java.lang.Math類的方法時,爲何不須要new出一個Math對象,而後調用該對象上相應的方法?數據結構

由於Math中的成員變量和方法都是靜態的不須要新建Math對象。>
2 若是new Math()會產生什麼錯誤?嘗試閱讀Math類源代碼,分析緣由.
The constructor Math() is not visible>由於是由 private構造函數,因此不能被外部調用,所以不能用new來產生新對象。
**3 進一步:你以爲什麼樣的對象須要new出來才能用,調用什麼方法時沒必要建立相應對象就可使用?(重點檢查)
須要配一個存儲空間保存引用時須要 new來引用,基本數據類型不須要new而直接定義函數

4. 重載Overload

1 什麼是重載?什麼是構造函數重載?怎麼才能區分兩個重載的方法?工具

重載:方法名相同但參數名不相同
構造函數重載:能夠定義多個構造函數,可是參數類型不能相同。
區分:從方法的參數的數量、順序以及它的類型來區分>學習

5. 代碼閱讀: final

1.final修飾的變量不能改變,爲何以下代碼卻可正常運行?
<final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;<
由於用關鍵字 final 修飾引用類型。這個對象沒法被修改。但它所指的對象是能夠修改的。this

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

7. 封裝

1 結合PTA(形狀),請用本身的話簡單總結一下面向對象中封裝是什麼意思?有何好處?
客觀事物封裝成抽象的類,對一些不可信的進行信息隱藏。
好處:1.能夠提升數據的安全性。
2.能夠自由的調用。
2 和封裝有關的關鍵字有哪些?
public ,private,this.code

8. 結對編程實踐(未完成,0分)

我結對編程的是舍友翁明強,我和他編程水平相差不大,咱們討論的是第一題jmu-Java-03面向對象基礎-01-構造函數與toString我和他思路差很少不過運行起來能夠,之間都有互相討論,才得以完成。


3.2 截圖PTA題集完成狀況圖

3.3 統計本週完成的代碼量

周次 總代碼量 新增代碼量 總文件數 新增文件數
3 220 220 11 11
相關文章
相關標籤/搜索