學習資料來源:斯坦福大學公開課程式設計方法cs106aJAVA(下載下傳中心有資源)
相關學習資料已上傳至下載下傳中心:學習過程中使用的代碼、筆記初稿以及課程講義(有興趣者可自行下載下傳)
學習過程中的大部分程式需要導入acm.jar包(已上傳至下載下傳中心,也可自行進入http://jtf.acm.org/ 進行下載下傳),
處理大型資料結構的規則:
名詞(nouns)對應 類(classes)
動詞(verbs)對應 方法(methods)
資料要有與其對應的唯一辨別符
需要選擇适當的集合體
為了減少存儲空間以及便于資料的調用,一般資料隻有一份,使用時路徑指向需要的資料即可
示例:編寫一個簡易網絡音樂商店(需要能夠添加音樂(Song)以及專輯(Album)等)
根據資料結構規則:(名稱對應類,動詞對應方法)
Class Song
name String
band String
price double
unique identifier(name + band) —— 唯一辨別符
Class Album
name String
band String
list of songs ArrayList
add
list(iterator)
ArrayList<Song> songs = new ArrayList<Song>();
HashMap<String, Album> albums = new HashMap<String, Album>();
軟體開發的一些技巧及建議
調試程式(Debugging):
設計軟體(Design) —— 建築師(Architect)
編寫代碼(Coding)—— 工程師(Engineer)
測試(Testing)—— 破壞他人财産的人(Vandal)
調試程式(Debugging)—— 偵探(Detective)—— 找到錯誤在哪 并修複它
軟體開發四部曲:
測試 —— 開發 —— 調試 —— 部署
每一環節的花費是前者的十倍
調試經驗總結:(産生問題的原因)
1、 不好的變量值
2、 有錯誤的邏輯
3、 無根據的假設——機關
軟體調試的規則:
大部分問題都是簡單的問題。
程式要系統化
質疑你的假設(很多人在程式出現問題時常常會假設問題可能出現在哪裡)
挑剔的對你的代碼
遇到問題時别驚慌失措
調試方法:
println:如果錯誤的值是你程式的問題所在,在代碼裡添加額外的prinln語句可以查找問題所在位置
單元測試(Unit test):測試獨立的單元 (不可一口氣測試整個程式)
eclipse調試方法:斷點