20182323 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结
目录
学号20182323 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结
教材学习内容总结
关键摘要:
- 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 类型,还有你自己定义的类的类型。
代码调试中的问题和解决过程
没出现新的问题,出现的是以前的问题。
代码托管
上周考试错题总结
上周没有错题
结对及互评
点评模板:
-
博客中值得学习的或问题:
- 加入自己学习过程中的图片,给人印象深刻。
- 对问题剖析到位,有深入学习。
-
代码中值得学习的或问题:
- 代码排版越来越规范,便于阅读
- 代码中适当加入注释会更好
-
基于评分标准,我给本博客打分:13分。得分情况如下:
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 代码托管不能打开的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程(2分)
-
代码调试中的问题和解决过程(2分)
-
本周有效代码超过300分行的(加0分)
-
其他加分:
- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 错题学习深入的加1分
- 点评认真,能指出博客和代码中的问题的加1分
- 结对学习情况真实可信的加1分
点评过的同学博客和代码
- 本周结对学习情况
- 结对同学学号20182315
- 结对照片
- 结对学习内容
- 继承
其他(感悟、思考等,可选)
以前的学习,都是老师一味的灌输,老师教什么,我们就会什么,没有自己探索的过程,等到自己去实践的时候,就会遇见各种各样的问题;现在娄老师的教学就是让我们自己去学习,自己去发现问题,然后问自己所发现的问题,因为每个人的思维方式不同,所以碰到的困难也是多种多样的,解决属于自己的问题,这样成长才是最快的。
老师单方面的传输的知识,对于我们来说,是最习惯的一种学习方式,也是我们认为最简单的学习方式,但是,我认为自己发现问题然后再解决,这样的学习是高效的,虽然会很累,但是,这样才能学到更多的东西。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 77/77 | 2/2 | 15/15 | |
第三周 | 424/501 | 3/5 | 30/30 | |
第四周 | 393/894 | 2/7 | 30/30 | |
第五周 | 320/1214 | 1/8 | 30/30 |
-
计划学习时间:25小时
-
实际学习时间:20小时
-
改进情况: