20162313 2016-2017-2《程序设计与数据结构》第五周学习总结

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脚本的运行结果截图)
image

感觉我的脚本有问题,我之前删除的备份文件也给我算上了,导致多了将近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.(布尔表达式可以有任意数量的逻辑运算符,因此可以使用单个布尔表达式构造复杂条件。)

结对及互评

20162309

点评过的同学博客和代码

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

本周首次进行中英文提干的方法,在实际答题过程中,感觉离开中文翻译就无法阅读题目了,看来英语还是很需要提高的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

posted @ 2017-04-02 17:53  DeforeSya  阅读(112)  评论(6编辑  收藏