20162313 2016-2017-2 《程序设计与数据结构》第5周学习总结
教材学习内容总结
1.再谈类与对象(类和对象的确定,分配职责)
2.类的剖析(实例数据,UML类图)
3.封装(可见性修饰符,访问方法和设值方法)
4.方法的剖析(return语句,参数局部数据,再次讨论构造方法)
5.静态类成员(静态变量,静态方法)
6.类关系(依赖,同一类中各对象之间的依赖,聚合,this引用)
7.方法设计(方法分解,再次讨论方法参数)
8.方法重载
9.测试(审核,缺陷测试,单元测试,集成测试,系统测试,测试驱动的开发)
10.调试(使用print语句进行简单调试,调试概念)
教材学习中的问题和解决过程
- 问题1:return语句的用法到底是什么?
- 问题1解决方案:上网查了一下 并且问了一下其它同学并观看了其它同学的博客,得到如下解释:两个作用,一个是返回方法指定类型的值(这个值总是确定的),一个是结束方法的执行(仅仅一个return语句)。
- 问题2:三个可见性修饰符(public,private,protected)的具体用法。
- 问题2解决方案:public:具有最大的访问权限,可以访问任何一个在classpath下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。private:访问权限仅限于类的内部,是一种封装的体现,例如,大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。protected:主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
代码调试中的问题和解决过程
- 问题1:两个程序一起编译时出现错误。
- 问题1解决方案:将javac -d bin src/Die.java 改为javac -d bin src/*.java
代码托管
(statistics.sh脚本的运行结果截图)
感觉我的脚本有问题,我之前删除的备份文件也给我算上了,导致多了将近2000行代码。
上周考试错题总结
- 单选题:Suppose we have an array of String objects identified by the variable names. Which of the following for loops will not correctly process each element in the array.(假如我们有一个名为names的String对象数组,下面哪个for循环不能遍历数组中的每一个元素?)
A.for(int i = 0; i < names.length; i++)
B.for(String name : names)
C.for(int i = 0; i < names.length(); i++)
D.none of these will correctly process each element(以上都不能遍历)
E.all of these will correctly process each element(以上都能遍历)
答案:length在数组中是数组对象的属性是一个常量,和类中的length方法不一样,不需要加括号。 - 判断:An infinite loop is not a compile-time error.(无限循环不会产生编译时错误) (√)
原因:An infinite loop is usually caused by a logical error, and will not be caught by the compiler.(无限循环通常由逻辑错误引起,不会被编译器捕获。 ) - 判断:In Java, a boolean expression is limited to having exactly 2 logical operators.(在Java中,布尔表达式中最多有两个逻辑运算符) (×)
原因:A boolean expression can have any number of logical operators, so it is possible to construct sophisticated conditions using a single boolean expression.(布尔表达式可以有任意数量的逻辑运算符,因此可以使用单个布尔表达式构造复杂条件。)
结对及互评
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
本周首次进行中英文提干的方法,在实际答题过程中,感觉离开中文翻译就无法阅读题目了,看来英语还是很需要提高的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 90/90 | 1/1 | 20/20 | |
第二周 | 377/467 | 1/2 | 14/34 | |
第三周 | 344/811 | 1/3 | 17/51 | |
第四周 | 846/1684 | 2/5 | 》30/81 | |
第五周 | 777/2461 | 1/6 | 12/93 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:15小时
-
实际学习时间:12小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)