1. 程式人生 > >20172319 2018.03.27-04.05 《Java程序設計》第4周學習總結

20172319 2018.03.27-04.05 《Java程序設計》第4周學習總結

距離 正在 編寫 內容 其他 安全性 b16 排查 rabl

20172319 2018.03.27-04.05 《Java程序設計》第4周學習總結

教材學習內容總結

第四章 編寫類

  1. 類與對象的回顧:對象是有狀態的,狀態由對象的屬性值確定。屬性由類中的聲明的變量所定義。對象的操作可能改變該對象的狀態。對象的操作由 類中聲明的方法定義。
  2. 類的分析:類的成員(類的數據和方法);構造方法(給類賦初值);實例數據(變量聲明的位置定義其作用域);UML類圖(類及其對象關系可視化描述)。
  3. 封裝:(1) 可見性修飾符:public(公有);private(私有,只能從內部訪問);protected(只與繼承性相關)。
    ?? ???????(2)訪問器:getX,修改器:setX。
  4. 方法的分析:調用方法;return語句(獲取返回值);實參,形參(方法聲明首部中參數名);局部數據(方法內聲明並使用)。
  5. 構造方法的回顧:與類名相同;無返回值;常用於初始化實例對象。

第七章 面向對象設計

  1. 軟件開發活動:開發活動的四個基礎過程:確定軟件需求-軟件設計-實現軟件設計-軟件測試。
  2. 明確類和對象:類的識別(給類命名、分清問題所在域);類的職責(聲明方法去定義一個對象的行為)。
  3. 靜態類成員:靜態變量/類變量(static,,由所有類實例共享);靜態方法(通過類便可調用);main方法(只能訪問靜態變量或局部變量)。
  4. 類間關系(最基本:依賴、聚合和繼承):依賴(A必須通過訪問B的實例來調用方法,類的對象可作為參數傳遞給本類的方法);
    ?? ?聚合(對象集合成對象、包含關系);this引用(當前正在運行的對象;區分同名的構造方法參數和實例變量)。
  5. 接口(與對象交互的公共方法):一組常量和抽象方法的集合;不能被實例化;可以由多個類實現同一個接口,一個類可以實現多個接口;
    ?? ?Comparable接口(compare to方法);Iterator接口(操作一次移動至下一個對象)。
  6. 枚舉類型(特殊的類):其實例為枚舉值,其值為對象;內含靜態方法values(返回所有枚舉值的列表(是一個叠代器,可用for循環語句處理其值))。
  7. 方法設計:方法分解(一個方法分解為多個方法);方法參數的傳遞方式(按值傳遞;按引用調用)。
  8. 方法重載:使用同一方法名調用多個方法。
  9. 測試:審查;缺陷測試(黑盒測試和白盒測試)。

教材學習中的問題和解決過程

  • 問題1:private不是私有化嗎?後面幹嘛又使用public公開了?
  • 解決:私有的是屬性,對其私有化提高了其安全性,讓使用者只能通過public提供的方法來訪問數據。

  • 問題2:書上說die引用變量指向了各自Die對象的地址(什麽東西?)
  • 解決:即是輸出時跟在變量後面的奇形怪狀的字符,正常情況下時隱藏的,但如果漏了什麽語句(當時對die操作了一波,截的圖不見了),它就會顯示在?? ?變量後面。

  • 問題3:構造方法...真的有用?
  • 解決:廢話,沒用講幹嘛 為屬性賦值時,很容易忘記對其中的一項或多項進行賦值。構造方法可以簡化對象初始化,為實例變量賦值。

  • 問題4:帶參數的構造方法...這是又什麽?
  • 解決:可以顯示地為實例變量賦予初始值。在不同的條件下創建不同的對象,這些對象的實例變量具有不同的值。就是new後面()裏的東西。

  • 問題5:實現類只能用那些在接口中的特定方法?
  • 解決:實現一個接口類必須定義那些包含在接口中的方法,但在接口中允許定義其他方法。

    代碼調試中的問題和解決過程

  • 問題1:為什麽照著課本敲好的東西javac不了?
  • 解決:(1)先javac類,再javac其測試文件,之後再移動至bin文件夾。
    ?? ??(2)javac -d bin/ src/*java

  • 問題2:編好了類,運行卻有問題。
  • 解決:類中出現些許人物錯誤,機器檢查不出來,只能人為去排查。
    技術分享圖片
    技術分享圖片
    技術分享圖片

  • 問題3:練習pp4.5時,想在類中輸出語句,卻發現怎麽改數據boolean都是false。
  • 解決:起初在測試裏面引用了類中的isAntique方法,後面隨著練系的增多,知道原來在輸出時沒有引用到類本身的方法。
    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片

代碼托管

技術分享圖片

上周考試錯題總結

  • 錯題1:
    技術分享圖片

  • 理解:字符串是不可變的,一旦創建了一個字符串對象,它就不能被改變。最短的字符串是“”在引號之間沒有字符,所以長度為零。
  • 錯題2:
    技術分享圖片
  • 理解:編譯器能夠檢測到嘗試使用未初始化的變量,在這種情況下它會產生語法錯誤。如果諸如使用編譯器的轉義檢測,則在使用時發生運行時錯誤。
  • 錯題3:
    技術分享圖片
  • 理解:在[0,1)範圍內產生一個偽隨機數; 乘以10得到範圍[0,10)內的數字; 減去5得到範圍[-5,5]中的數字。
  • 錯題4:
    技術分享圖片
  • 理解:這兩個聲明都是合法的Java。s1是一個String引用,它被初始化為String“testing123”。s2是一個String引用,
    ?? ?它被初始化為字符串“testing 123”。請註意“測試”和“123”之間的距離。所以這兩個字符串是不相等的。
  • 錯題5:
    技術分享圖片
  • 理解:NumberFormat總是循環; 它從不截斷。而且,它提供了貨幣和百分比的方法。
  • 錯題6:
    技術分享圖片
  • 理解:導入語句只能與一個(通配符)一起使用。如果您還需要導入包的所有輔助級別,則必須明確寫出它們:
    ?? ? import package.A.
    ;
    ?? ?import package.B.*;

    其他(感悟、思考等,可選)

    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 202/202 1/2 15/15 積極主動敲代碼
第二周 490/692 1/3 18/33 善於思考
第三周 581/1273 1/4 15/48 善於完善
第四周 1857/3130 1/6 33/81

20172319 2018.03.27-04.05 《Java程序設計》第4周學習總結