20182333 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结
20182333 2019-2020-1 《数据结构与面向对象程序设计》第5周学习总结
教材学习内容总结
- 子类与父类的关系。子类是父类的其中一种。派生操作在子类中加保留字extends实现。子类的实例化并不依赖于父类的实例化。
- protected修饰符(为了让子类能够访问并且不违反封装性原则)。父类中的变量和方法被声明为protected可见性时,子类就可以使用。
- 父类的构造方法,子类不能继承(除非用super引用)。
- super引用。
- 多继承。
- 子类和父类有相同的方法名和签名时,子类方法将重写父类方法,子类方法优先。
- 可见性。在子类中,即使不能直接引用父类成员,但是父类成员也总是存在的,可以被间接地引用。
- Object类。
教材学习中的问题和解决过程
- 问题1:super引用和父类的关系。
- 问题1解决方案:
1.super引用可以调用父类的构造方法。
2.super引用调用父类构造方法的操作只能在子类中执行,并且必须是在第一行执行。
3.父类构造函数有参数,子类中一定要用super引用,父类构造函数无参数,则super()引用可有可无。
- 问题2:多继承
- 问题2解决方案:
1.单继承中子类只能有唯一的父类。
2.java语言的设计者明确决定不支持多继承,以防出现父类的方法同名的情况。
3.作为替代多继承的方法,依赖接口。一个java类只能由一个父类派生,但可以实现多个接口。
- 问题3:三种可见性修饰符的可见性比较
- 问题3解决方案:private可见性最严格,public可见性最弱,protected可见性位于两者之间。
- 问题4:接口类和抽象类
- 问题4解决方案:
1.接口类:常量+抽象方法
2.抽象类:常量/变量+抽象/非抽象方法(注:抽象类可以不包含抽象方法)
3.抽象类是用来捕捉子类的通用性的,它不能被实例化,只能用作子类的超类,抽象类是被用来创建继承层级里子类的模板。
4.抽象类中的每一个抽象方法都必须使用abstract修饰符,抽象方法不使用final和static修饰符。
代码调试中的问题和解决过程
-
问题1:
-
问题1解决方案:({)少了一个,没有注意,加上就好了。
代码托管
上周考试错题总结
-
1.
-
解析:super指令表示对当前类的父类中某些内容的调用。因为没有消息,只有super(),所以它是父类构造函数的调用。
-
单词:invocation(调用)
-
2.
-
解析:受保护的可见性修饰符用于以受保护(保护)的方式控制对项的访问。保护是将访问限制为当前类(如私有项)、同一包中的类或该类的扩展类。
-
单词:visibility(知名度)extended (扩展)guarded(保护)
-
3.
-
解析:同一父母的两个孩子之间的关系被称为兄弟姐妹(兄弟意味着性别)。克隆是同一对象的副本,别名是同一对象。在Java中,兄弟和亲戚不用于定义类之间的关系。
-
单词:siblings(兄弟姐妹)
-
4.
-
解析:术语“is-a”用来表示子类是父类的一种类型。例如,研究生是一种学生。子类是一个更具体的类型。hasa关系指的是类的属性或元素(例如,学生有GPA),而instance-of指的是类和该类的实例化对象之间的关系。没有was-a关系,别名表示引用相同对象或实例的两个变量。
-
单词:subclass(子类)instantiated(实例化)
-
5.
-
解析:为了使抽象方法变得具体,必须覆盖它。将一个方法声明为final使得不可能覆盖它。这是矛盾的,是禁止的。
-
单词:prohibited(禁止)contradiction(矛盾)
-
6.
-
解析:Extends用于继承…继承是一种is-a关系,而不是has-a关系。
-
单词:Inheritance(继承)
点评过的同学博客和代码
- 本周结对学习情况
其他(感悟、思考等,可选)
有一说一,国庆假期让人学习还是有够讨厌的呢!而且还布置这么多,希望老师以后国庆假期作业少布置些!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 56/56 | 2/2 | 20/20 | 主要学会了简单的操作Linux以及如何编写简单的java程序并将它上传到码云 |
第二、三周 | 331/407 | 3/5 | 23/43 | 学会了一些类和程序包的使用,也明白了C语言和Java在有些地方的区别 |
第四周 | 595/1002 | 2/7 | 20/60 | 学会了IDEA以及用IDEAgit码云,也学会了TDD测试 |
第五周 | 1621/2623 | 2/9 | 17/77 | 见识了服务器与用户链接的代码,也学习啦继承的一些知识。 |
-
计划学习时间:20小时
-
实际学习时间:17小时
-
改进情况:这周是国庆假期,改进是不可能改进的,不退步都不错了!但是作业太多了,导致代码量增了这么多!!