20162307 第六周学习总结

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

教材学习内容总结

关键摘要:

  • 1.继承是从已有类派生一个新类的过程。

  • 2.继承在父类和子类之间建立了is-a关系

  • 3.可以使用super引用来调用父类的构造方法。

  • 4.子类可以重写(重定义)继承自父类的方法。

  • 5.一个类的子类可以是一个或多个其他类的父亲,这样形成了类层次。

  • 6.Java 的所有类直接或间接派生于Object类。

  • 7.Java 程序中的每个类都继承了toString和equals方法。

  • 8.final修饰符可用来限制继承。


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

  • 问题1:is-a关系是什么关系啊?
  • 问题1解决方案:上网查找
    is-a( 是 "a" 小明是人类)表示的是属于得关系。比如兔子属于一种动物(继承关系)。

has-a( 有 "a" 汽车有轮胎) 表示组合,包含关系。比如兔子包含有腿,头等组件;就不能说兔子腿是属于一种兔子(不能说是继承关系)

7.1.2 "is a"关系和"has a"关系

假设有两个类:Computer和Employee。明显地,这两个类之间不存在"is a"的关系,即Employee不是计算机,它们之间没有继承关系的必要。因此不可能产生代码重用性。但这两个类之间是"has a"关系,即是支持的关系。例如,Employee"has a"Computer。明显地是一种支持关系。这种支持关系落实到代码中,就是在Employee中创建Computer的对象,调用其方法,到达完成某种运算和操作的目的。

Employee和Manager 类存在的则是"is a"关系,即Manager是Employee。它们之间存在共性,或者共同的属性。Manager是Employee的具体化;Employee是Manager的概括和抽象。概括性和抽象性的类,如Employee,在继承中则定义为超类。具体或代表对象特性的类,如Manager,则定义为子类。如果这是一个用来计算雇员工资的程序,那么在超类Employee中,我们应当包括所有子类都应该具有的、与计算工资有关的数据,例如name、employeeID、jobTitle、seniority、baseSalary以及用来计算基本工资部分的方法,如baseSalary()等。在Manager这个子类中,我们不仅继承Employee的所有数据和方法,还增加针对Manager的新的数据,如是否董事会成员boardMember、职务补贴merit等,因为除基本工资的计算之外,这些都影响到具有经理职务雇员的收入。

对两个类之间"is a"或是"has a"关系的分析,有助于我们确定它们之间是否存在继承关系,避免设计上的错误,因而达到提高代码重用性的目的

  • 问题2:public void与public int区别
  • 问题2解决方案:
    public.是访问修饰,访问修饰有public ,protected,默认修饰符(也就是什么也不写),private四种,四种按照从前到后访问级别依次降低。
    void.的不返回任何参数,它是方法返回类型中的一种,除了void 外,方法返回类型还可以是基本数据类型和引用数据类型,基本数据类型有byte,short,int,long,char ,float,double,boolean八种,引用数据类型有很多的,它是根本你想引用什么数据类型,想常见的有String 类型,还有你自己定义的类的类型。

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

  • 问题1:运行三个程序?
  • 问题1解决方案:在src目录下mkdir一个新的目录,再将程序放在同一个目录下,再javac,然后退到原来的目录,java运行

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

上周没有考试

结对及互评

  • 基于评分标准,我给本博客打分:7分。

  • 参考示例

点评过的同学博客和代码

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

这周班主任给我们开了班会,让我又重新的认真的思考了一下我目前的学习状态,刘老师说的没有错,以前的学习,都是老师一味的灌输,老师教什么,我们就会什么,没有自己探索的过程,等到自己去实践的时候,就会遇见各种各样的问题;现在娄老师的教学就是让我们自己去学习,自己去发现问题,然后问自己所发现的问题,因为每个人的思维方式不同,所以碰到的困难也是多种多样的,解决属于自己的问题,这样成长才是最快的。
老师单方面的传输的知识,对于我们来说,是最习惯的一种学习方式,也是我们认为最简单的学习方式,但是,我认为自己发现问题然后再解决,这样的学习是高效的,虽然会很累,但是,这样才能学到更多的东西。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 72/72 1/1 20/20
第二周 267/339 1/2 18/38
第三周 297/636 1/3 22/60
第四周 719/1355 2/5 30/90
第五周 640/1995 1/6 20/110
第六周 698/2693 1/7 20/130

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

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

  • 计划学习时间:XX小时

  • 实际学习时间:XX小时

  • 改进情况:

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

参考资料

posted @ 2017-04-09 17:57  张韵琪  阅读(174)  评论(4编辑  收藏  举报