20172319 2018.03.27-04.05 《Java程序設計》第4周學習總結
阿新 • • 發佈:2018-04-05
距離 正在 編寫 內容 其他 安全性 b16 排查 rabl
20172319 2018.03.27-04.05 《Java程序設計》第4周學習總結
教材學習內容總結
第四章 編寫類
- 類與對象的回顧:對象是有狀態的,狀態由對象的屬性值確定。屬性由類中的聲明的變量所定義。對象的操作可能改變該對象的狀態。對象的操作由 類中聲明的方法定義。
- 類的分析:類的成員(類的數據和方法);構造方法(給類賦初值);實例數據(變量聲明的位置定義其作用域);UML類圖(類及其對象關系可視化描述)。
- 封裝:(1) 可見性修飾符:public(公有);private(私有,只能從內部訪問);protected(只與繼承性相關)。
?? ???????(2)訪問器:getX,修改器:setX。 - 方法的分析:調用方法;return語句(獲取返回值);實參,形參(方法聲明首部中參數名);局部數據(方法內聲明並使用)。
- 構造方法的回顧:與類名相同;無返回值;常用於初始化實例對象。
第七章 面向對象設計
- 軟件開發活動:開發活動的四個基礎過程:確定軟件需求-軟件設計-實現軟件設計-軟件測試。
- 明確類和對象:類的識別(給類命名、分清問題所在域);類的職責(聲明方法去定義一個對象的行為)。
- 靜態類成員:靜態變量/類變量(static,,由所有類實例共享);靜態方法(通過類便可調用);main方法(只能訪問靜態變量或局部變量)。
- 類間關系(最基本:依賴、聚合和繼承):依賴(A必須通過訪問B的實例來調用方法,類的對象可作為參數傳遞給本類的方法);
?? ?聚合(對象集合成對象、包含關系);this引用(當前正在運行的對象;區分同名的構造方法參數和實例變量)。 - 接口(與對象交互的公共方法):一組常量和抽象方法的集合;不能被實例化;可以由多個類實現同一個接口,一個類可以實現多個接口;
?? ?Comparable接口(compare to方法);Iterator接口(操作一次移動至下一個對象)。 - 枚舉類型(特殊的類):其實例為枚舉值,其值為對象;內含靜態方法values(返回所有枚舉值的列表(是一個叠代器,可用for循環語句處理其值))。
- 方法設計:方法分解(一個方法分解為多個方法);方法參數的傳遞方式(按值傳遞;按引用調用)。
- 方法重載:使用同一方法名調用多個方法。
- 測試:審查;缺陷測試(黑盒測試和白盒測試)。
教材學習中的問題和解決過程
- 問題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周學習總結