学习资料来源:斯坦福大学公开课编程方法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调试方法:断点