第六周作业

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

教材学习内容总结

本周最主要学习的是面向对象的三要素封装、继承、多态中的继承。
首先我们学习了如何创建子类及继承的一些基本概念,知道了父类与子类之间建立了is-a的关系,子类中包含了父类。
之后接触到了又一个Java修饰符protected和引用super和类object(java中所有的类都直接或间接的派生于Object类。)
还有一个主要的内容就是方法的重写(覆盖);只有在子类的权限大于或等于父类时才可以重写,否则会出现编译时的错误。

教材学习中的问题和解决过程

  • 问题1:在观看视频时老师提及父类与子类的权限的大小的问题,我并不理解怎么去比较权限的大小。
  • 问题1解决方案:我在上网查找资料之后就总结了修饰符的权限(还有一种没有修饰符的情况)
权限 子类 其他包
public y y y y
protect y y y n
private y y n n

其中Y表示可以访问,N表示无法访问;

这就比较好的解决了我的问题,可以访问的数有多权限就越大。

  • 问题2:子类与父类之间的关系包括成员变量、成员函数、构造函数的关系
  • 问题2解决方案:经过视频与上网来解决这个问题我提取了我认为是重点的几句话“在对子类对象初始化时,父类的构造函数也会运行,因为子类构造函数的第一行都有一条隐式语句super();”“super和this的使用几乎一致、this代表的是本类对象的引用、super代表的是父类对象的引用”有一个博客中介绍的也比较全
    -问题3:在教材的学习中我看到了一个修饰符final以前也遇到过只是没有深究;我不大了解它的作用。
    -解决方案:经过学习与查阅我了解到final最主要有一个作用就是限制继承,原先我学习到过封装,后来学的继承就刚好打破了封装原则,于是就有了final使数据的值始终不变,防止了在被继承后父类中的有些不能变化的部分被改写。

代码调试中的问题和解决过程

  • 问题1:在我看视频时老师提了一个问题那就是怎么建立一个模板来计算一个程序运行的时间,用到了System类中的一方法currentTimeMill();用这个方法写出一个计算任何程序的数据的方法。我只找到固定的的一个程序的时间,没有想到怎么让它可以测任何一个程序。
  • 问题1解决方案经过实践我没有找到除了去改代码以外的方法,显然这是不可取的,在实际应用是去改一个代码的代价太大了。于是我就看老师是如何解决问题,发现我遗漏一个最重要的方法就是用抽象类来表示在观看了视屏之后我就写了如下代码统计运行时间:

代码托管

上周考试错题总结

  • 这周没有进行考试。

结对及互评

我的结对伙伴在学习上这周有所放松,没有像前几个周那没认真。但是他还给我提供了比较大的帮助,的确是我学习的一大助力。

点评过的同学博客和代码

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

经过这一周的学习时间有点紧假期的时候光顾着玩没有安排时间学习,所以在开始上课时就有点忙。总之自己在时间的安排上还是有一定问题,这不仅仅是这个假期的问题,我一直在去想办法去解决这些事情,总体上进长不大。

这周我还发现我在看视频的时候觉得自己都懂了,听得很明白了,可是下来一做就发现漏洞百出,到处都有自己没注意到的小错误、小知识点。打一个程序你自己觉得构思的挺好,可是一实践就会发现自己的想法还是太简单,没有把一件事情考虑的的那么周全。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 77/77 1/1 14/14
第二周 331/408 1/2 16/30
第三周 315/723 1/3 15/45
第四周 848/1546 2/5 20/65
第五周 959/2505 1/6 10/75
第六周 720/3225 1/7 15/90

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:20小时

  • 实际学习时间:15小时

  • 改进情况:在学习时的专注度不足时间就耗着没有有效的利用这些时间,导致出现了与计划的差距。

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

参考资料

posted on 2017-04-09 16:22  20162324-春旺  阅读(247)  评论(5编辑  收藏  举报

导航