第三阶段博客总结
0.前言
这次我们在博客园上的第三次博客,同时也是这个学期最后一次的JAVA博客。
对于自己来说,由于之前的数据结构和c语言学习的不够牢固,自己的编程能力也没有太高的提升,但是这个学期通java的学习,慢慢的开始体会到了面向程序设计和面向对象程序设计的区别,这篇博客中是针对最近的作业和JAVA的整体学习进行总结。
- 作业过程总结
雨刷类设计是对之前的课堂上讲的雨刷进行一次加深,在之前的的基础上增加了一个模式,模式里包含了更多的档位,对正则表达式的要求更为严格,对字符串的分割或者遍历也更仔细 最后三次作业中,有一次作业给了UML图,自己对类的继承、多态、封使用不多,所以对这些概念的理解并没有特别深的理解,相反 通过这几周的实验,对面向对象程序设计有了进一步的加深了解
总结之前的时候写的程序里虽然是使用JAVA编程用法,但是很少看到对象,方法,属性,类,只是一味的输入以及输出,相比来看我自己的程序可读性很差,只要稍微改了改题里的要求,这程序里的东西就很可能出错,而且自己的代码有时候会很繁琐。但是看后面几次的PTA,已经能够看到完整的对象,方法,属性,类,以及三大特性为封装性、继承性与多态性。
最后的两次作业也是难度最大的两次,这两次次作业分别是
统计Java程序中关键词的出现次数表达式求值,
考察了List、Set和Map的接口应用,正则表达式的应用,以及算符栈,操作数栈的知识。
这几次作业刚开始做的都不好,对于自己来说,由于之前的基本功不好,写起来很吃力,但是由于现在回校了,可以多去询问同学,通过询问同学,可以了解到同学解题的一些思路,以及自己处离一些繁琐的代码不知道如何下手时,也能通过网上的一些编程学习 从而加深自己的一些编程能力,有时候因为正则表达式不正确,不能得出正确的输出样式,而丢掉很多分。对于雨刷程序功能扩展设计这道题在程序重构之后就因为循环和正则表达式不正确而不能正确控制升档和降档,对于List、Set和Map的接口应用和算符栈,上课就听得有点懵,
没有学懂总是感觉无从下手。
2.OOP设计心得
第三阶段的学习中,对于封装、继承、多态的学习主要来自于实验,因为后面一段时间主要是实验比较多,在实验中进行了相关程序设计及代码编写,
在最后一次pta作业中,在编码中贯彻了java的单一原则,一个方法只解决一个问题,从而体现了我们学习得是面向对象而不是面向过程。
面向对象设计有两个基本原则,单一职责原则和开闭原则。单一职责原则是一个类只负责一项职责。而开闭原则是指应该对扩展开放,对修改关闭。换句话说,如果修改或者添加一个功能,应该是通过扩展原来的代码,而不是通过修改原来的代码。
对于类的设计,我的理解有点类似于单一原则,既一个类主要完成一个大的功能
- 测试的理解与实践
前面提到了编程的严谨性是非常重要的,而毫无疑问,测试也是非常重要的,毕竟如果代码报错,唯有测试才能找出错误,常用的测试方法有Debug和Junit
在PTA里的测试点,我觉得测试用例应该主要从边界值,特殊值,错误输入值这三方面来检验。之前的总结里提到了Junit的应用。这个是很常用的,这次还要说一个功能,那就是debug。Debug可以在每一步中检查每一个值,表达式的变化,找到异常的数值,从而找出错误,这样会让测试更加方便。
4.课程收获
简要总结
理解面向过程程序设计和面向对象程序设计的区别
利用debug功能去检验程序里的值和表达式
理解了面向对象程序设计封装性、继承性与多态性三大技术特性
需要继续理解和巩固List、Set和Map的接口应用,正则表达式的应用,以及算符栈,操作数栈的知识
5.对课程的建议
疫情的原因本学期的JAVA课程都是在线上进行的,
虽然对于线上的教学 自己一开始还没有很好得适应,对于很多的新知识不能很好的了解消化在家写PTA的这段时间,自己很多时候又墨迹 而且碍于面子 很少会去向别人求教,但是知道这门专业课取消最后的考试,采用平时PTA和实验的分数已经平时分作为最后的分数,由于刚开始得那几次没拿多少分,导致自己pta的分数其实不高,其实对于自己的成绩还是有点虚的 不过尽力去做吧,后面两次作业的成绩都挺好,这学期我们学的java难度更小,作业也更为简单,但即使如此还是存在一定难度。总的来说,我觉得按这样三阶段的教学模式还是非常不错的,就我个人而言,真的学习到了很多实实在在的东西这样的学习经历也很特殊收获也很大。
浙公网安备 33010602011771号