20175311 2018-2019-2 《Java程序设计》第4周学习总结
教材学习内容总结
这一周在上一周的基础上更进一步,主要学习了子类的继承、super关键字的用法含义、继承与多态、抽象类等知识点。
- 对于子类的继承,就像字面上的意思所描述的,子类可以继承所有父类的公有方法和公有变量。存在以下的注意事项:
- 重写方法不能比被重写方法限制有更严格的访问级别。
- 在java中只存在单继承,无法实现多继承,但是可以实现逐级继承
- 在任何一个方法中,super语句都必须放在首句。如果父类中不存在不带参的构造方法,则子类需要进行显示调用。
- super关键字的用法和this存在一定的相似性
- 在Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数。如果你想引用父类的某种东西,则非super莫属。
- 在学习abstract时看到的几点需要注意的细节:
- 如果一个函数没有方法体,那么该函数必须要使用abstract修饰,把该函数修饰成抽象的函数。
- 如果一个类出现了抽象的函数,那么该类也必须使用abstract修饰。
- 如果一个非抽象类继承了抽象类,那么必须要把抽象类的所有抽象方法全部实现。
- 抽象类可以存在非抽象方法,也可以存在抽象的方法, 抽象类可以不存在抽象方法。
- 抽象类是不能创建对象的。
- 抽象类是存在构造函数的,其构造函数是提供给子类创建对象的时候初始化父类的属性的。
教材学习中的问题和解决过程
- 问题1:为什么抽象类不能创建对象呢?
- 问题1解决方案: 因为抽象类是存在抽象方法的,如果能让抽象类创建对象的话,那么使用抽象的对象,调用抽象方法是没有任何意义的。
- 问题2:对于方法定义public和定义为空有什么区别?
- 问题2解决方案:存在三种访问权限:public:可以被任意实体访问protected。只允许子类及本类的成员函数访问private。只允许本类的成员函数访问
代码调试中的问题和解决过程
- 问题1:之前在看书时发现了一个问题并在蓝墨云班课上提问,“为什么子类定义的对象可以调用父类的私密变量”最后得到了同学的解答。
- 问题1解决方案:通过自己对知识的进一步了解,得到了同学的解答。
[代码托管]
https://gitee.com/H2742/HelloWorld
图片截图
上周考试错题总结
- 错题1
上周课堂测试时考察了我们对如何输入变量的理解,我只是在书上看到过类似的句子,但也并没有见过太多次,更没有可以地去记忆,因此在课堂上测试时没有做出来对应的题目。于是我在课后翻了翻有关输入变量的博客,才对这个知识点有所了解。
其中,java没有提供诸如C/C++中的scanf输入函数,因此从键盘输入并不是一个简单的事情,为了方便起见,我们编写了一个名为SimpleInput的类,包含三个方法ReadDouble(),ReadInt(),和ReadString();他们分别从键盘输入浮点数,整数和字符串。
其他(感悟、思考等,可选)
这周上课的考试让我学到了许多东西,我开始就只会自己输入输出变量,但这是远远不够的。这周的测试告诉了我们要能够编写出存在让用户输入和结果输出的一个程序,因此我仔细地学习相关的内容。这周我在看书的同时,对于一些比较艰涩难懂的知识点我也增加了一些看视频的过程。我通过查询相关的博客以及看老师提供的视频以及自己找到的一些视频来了解这些知识。但是最重要的还是自己动手去编写这些程序,我认为自己在这一点方面做的还是有所欠缺,可能由于时间比较有限,自己始终没有能够很好的完成这一点。所以我希望自己在之后的学习中能够在学习视频的基础上,能够增加自己编写程序的练习。