OO学期末总结
作者:互联网
0:前言:
Java课迎来了收尾,这也将是最后一次Java作业总结博客,我的Java青春结束了,讲实话,作业写的挺闹心的,不过现在回想起来其实没那么难,相反还有点趣味。那么下面让我来详细叙述整个学期的学习。
一:作业过程总结(主要总结第三阶段,前两个阶段已经发表了 相关的博客):
- 第一阶段主要是面向过程,熟悉基本的 java语法,第二阶段就进入了面向对象,主要用到了封装,继承和多态,前两个阶段已经相关的博客,现在让我来详细讲一下第三阶段作业。第一次作业是雨刷程序功能扩展设计,主要用到了接口,在要换一个部件如雨刷,刻度盘的时候,我就不用再大改主类里面的代码,就只要加一个新的雨刷,刻度盘类来继承抽象雨刷,刻度盘接口,这里需要注意的是接口不是类。后面两次的作业需要自己设计uml图,不过还好类图不复杂。第二次作业是统计关键字出现个数,第三次作业是四则运算。先说第二次,我说一下我的思路,就是先将带双引号的字符串删掉,删掉两种注释部分的代码,然后将空格替换所有的符号,删掉多余的空格,最后再使用split将一串串的代码分成一个一个的字,然后在找出其中的关键字,这就是本题的基本思路。第三题的思路就是先判断输入是否合法(使用正则表达式),然后在对一个表达式进行入链表和入栈出栈操作,具体步骤老师上课讲过了。
- 在作业中遇到的问题:第一次作业因为自己的粗心,本来就是sum=sum+area;然而我在对面积求和的时候多加了一个sum,成了sum=sum+area+sum;要想到在将近五百行代码里找这个错误真的不容易,用debug找都很难,因为数字太多了。第二次作业感觉可以正常输出,但就是有两个点过不了,这就是这一题的问题(现在都没解决)。第三次作业的问题在那个在考虑加减乘除优先级的时候,ppt上是乘除的优先级大于加减,但是这样写出来过不了全部的正常测试点,例如1+(6/2+3)+3*4-2正确是等于18,但是按ppt的思路来就是等于14,这就是问题所在,解决问题的方法就是加的优先级高于减,减的优先级高于加,乘除同理。
- 第三阶段花费时间比例:第一次作业因为老师讲过了,所以就花了两天完成了;第二次作业主要是体力活(个人观点),花了将近四天,因为迟迟有两个点过不了,最后也就放弃了;第三次作业四则运算花的时间挺长的。
二:OO设计心得:
- 从面向过程到面向对象的过渡,学完java就觉得java比c语言好,在代码维护上java维护,修改的地方不大,而c语言就要大改,可能要重写;在代码使用上,c语言太冗长,java语言想用什么就new什么。
- 在面向对象上,我们依次学会了,单一职责,开闭原则,封装,继承,多态,接口,Java的正则表达式,Java数据结构栈,java里的map,list,还有最后学的图形界面设计,总之这个学期学到的东西挺多的,收获蛮大的。
- 学会根据题目写类图,一个程序好不好关键看类图设计的好不好,拿到题不要着急实现功能,主方法里的代码一般不超过五十行代码,功能实现一般在其他类里面,这里体现了类的单一职责。在两个类相关联时,不是直接用继承,有可能是组合,优先考虑组合的方法。
- 就类而言,类一般不包含于类,javafx这里特殊情况,instanceof可以用于类的判断。
- 在继承和多态中,了解上转型的使用,子类必须继承父类的构造方法。Super可以调用父类的方法。在接口中定义的都是抽象方法,子类继承接口,若未完全实现接口里的抽象方法,那子类也会变成接口。
- 使用throws来捕获程序产生的异常,子类产生的异常会向上抛出。
- 正则表达式应用广泛,我们应该熟悉掌握。学会用它判断输入是否合法,还可以用相关的字符串替换replace,使得便于分split字符串数组。
- 栈的使用,先入后出,相关的pop,push方法,和栈顶peek,栈是否为空empty。
- hashmap中的键值对一一对应,list的储存,遍历等。Iterator接口遍历list的简便性。
- 通过javafx设计界面,掌握其中结点之间的关系。
三:对于测试的看法:
测试对于代码质量的重要性:客户如果拿到未经测试的代码,用着用着出了很多问题,那估计客户以后不会再找你做产品了;我们在做作业的时候如果没有测试,就那样草草地将作业交上去,那达不到训练提升的效果。所以测试很重要。说到测试,万一数据不对,不仅仅要通过眼睛看,设置system.out.print来寻找错误,最重要是要熟练掌握debug。
四:课程收获:
收获挺大的,抗压能力增强了,耐心比从前也好多了,会独立解决作业中的问题;java语言真的是个方便的编程工具。虽然学习过程挺痛苦的,但是现在回想起来没那么难。在今后的编程语言学习上,希望都可以向学习java一样,这样高效,培养出来学生的编程能力不会弱,我要说的就只有这些了。再见!java!
标签:OO,总结,java,代码,作业,接口,学期末,Java,sum 来源: https://www.cnblogs.com/murderpta/p/13060781.html