201621123086 《Java程序設計》第3周學習總結

1. 本週學習總結

關鍵詞: 面向對象編程、對象、類、封裝java


2. 書面做業

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

1.1截圖你主要代碼(須要在程序中出現你的學號和姓名)並粘貼程序的git地址。


https://gitee.com/piraat/java201621123086/blob/master/week3/Rational.javagit

1.2 對比你的代碼與歷程的代碼,說明面向對象編程與面向過程編程有何區別?

答:
面向過程編程: 主要想的是如何解決問題。特別是在初學C語言時,對於函數的運用不是那麼熟練,因此常常將全部語句堆在主函數裏。時隔一兩天後,即便是本身再要想明白本身編程時的想法也很困難。
面向對象編程: 要將每一個 方法 的目的、結果想清楚。同時也要注意權限:private形容屬性;public形容方法。而且,要注意static方法不能引用non-static方法。編程

2. 構造函數與初始化塊

2.1 結合PTA 5(構造函數與toString)說明構造函數有什麼用?其函數格式有何特徵?

  • 構造函數用於建立對象時定義對象的屬性。

特徵:數組

  • 必須和類名相同
  • 沒有返回值
  • 與關鍵字 new 連用

2.2 若是一個類不寫構造函數,它有構造函數嗎?若是一個類中只有帶參的構造函數,它有沒有不帶參數的默認構造函數?

  • 若是一個類不寫構造函數,它有構造函數
  • 若是一個類中只有帶參的構造函數,它沒有不帶參數的默認構造函數

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


建立一個無參數的字符串對象緩存


將字符數組根據字符錶轉換爲字符串安全


用緩存區初始化字符串數據結構

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

初始化塊 靜態初始化塊 構造函數
不接受參數 不接受參數 能夠接受參數
不須要名稱 不須要名稱 名稱需與類名相同
視對象執行次數而定 一次 視對象執行次數而定

執行順序: 靜態初始化塊→初始化塊→構造函數函數

3.代碼分析:Math類

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

由於Math對象的方法都是 static 方法,能夠在無對象的前提下建立學習

3.2 若是new Math()會產生什麼錯誤?嘗試閱讀Math類源代碼,分析緣由。


能夠看到,Math對象是private修飾的3d

3.3 進一步:你以爲什麼樣的對象須要new出來才能用,調用什麼方法時沒必要建立相應對象就能夠使用?(重點檢查)

  • 非靜態方法,須要經過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;

由於此處final修飾的變量是數組對象,而接下來改變的則是數組對象的引用,並無對對象自己進行更改

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

ps.此處不知爲什麼true與false是相反的

7. 封裝

7.1 結合PTA(形狀),請用本身的話簡單總結一下面向對象中封裝是什麼意思?有何好處?

封裝 就是將實現方法與對象屬性打包起來,同時運用private/public等關鍵字來限定外部對此對象的權限。從而使得開發人員能夠在不考慮內部實現的狀況下對於這些對象加以使用。

  • 數據更爲安全
  • 爲開發人員提供了便利
  • 使不一樣類之間的相互影響減小到最低限度
  • 控制訪問權限

7.2 和封裝有關的關鍵字有哪些?

privatepublicprotecteddefault

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

找一個水平相近的同窗完成1-2題實驗題。開始編程前,可先對內容進行討論。

對方姓名: 王祖建
所完成的題目: 7-3 jmu-Java-03面向對象基礎-03-形狀
感想: 在完成核心代碼時兩人並無遇到太大困難,但有一些細節上的問題使得程序在PTA尚沒法經過,如輸出要用arrays.deeptostring方法、在複製代碼時將包名字也複製上等,同窗及時給予了指正

9. 選作:Runnable Jar




3. 碼雲及PTA

3.1. 碼雲代碼提交記錄

3.2 截圖PTA題集完成狀況圖


3.3 統計本週完成的代碼量

周次 總代碼量 新增代碼量 總文件數 新增文件數
1 0 0 0 0
2 0 0 0 0
3 619 619 15 15
相關文章
相關標籤/搜索