java作业_Java作业总结

0、前言:

本次博客对第九次到第十一次pta作业小结并对本学期所有pta的Java作业进行总结。

①    第九次作业:雨刷程序功能扩展设计

②    第十次作业:统计Java程序中关键词的出现次数

③    第十一次作业:表达式求值

第九次和第十一次作业都是满分,第十次作业未做出。

2、作业过程总结:

① 本阶段的三次作业需要用到本学期Java学习的很多重点内容:

第九次作业主要是对Java核心内容的类和对象的一些特性的考察。如类的多态、继承、抽象类和接口。

第十次作业主要考察字符串的处理和List、Set和Map接口的使用。

第十一次主要主要考察字符串的处理、栈的使用,并引入逆波兰表达式的算法。

考察顺序与学习内容顺序相关。

② 作业难点及解决:

第九次作业难点在于设计的程序要能进行功能的拓展,即符合单一职责原则和开闭原则。这要求我们能熟练使用抽象类和接口以及利用类的多态性和继承性进行编程,才能让程序在功能拓展时不用对原有的代码进行改动。对此,我们需要使用到工厂设计模式。工厂设计模式老师的讲解较为清楚,CSDN上也有很多讲解。了解了工厂模式解题也就比较简单了。

第十次作业难点在于对整个代码字符串的处理和Map接口的使用。字符串的处理需要用到String()类中的replace()、split()等方法把代码字符串中的符号去除并分割出关键词,然后用equals()方法对关键词进行检索,最后用Map集合对关键词进行记录。解题需要对String()类中对字符串处理方法的熟练运用。我未从代码字符串中提取出关键词,解题未果。

第十一次作业难点在于对表达式字符串的处理,将数字和运算符分离出来并加入栈中,将中缀表达式转换为后缀表达式(逆波兰表达式)。字符串的处理需要对整个字符串进行遍历并考虑各种特殊情况,需要严谨的算法。栈的使用较为简单,了解peek()方法和pop()方法的使用方法即可。中缀表达式转逆波兰表达式了解转换方法后也较为简单。

④    每次作业花费时间比例:

第九次作业较为简单,花费时间最少。

第十次作业处理字符串花费较多时间且解题未果。

第十一次作业学习栈的使用和逆波兰表达式花费较多时间。

⑤    程序设计算法时一定要严谨。注意字符串,Map集合遍历时起始点和终止点的设定。防止越界和产生错误,否则在程序调试上需要花费大量时间。

2、OO设计心得:

Java程序设计需要对类和对象的分析,通过对一类事物和一个对象的分析,思考出解决方案。类的设计应该尽量抽象化,以此来实现程序的可扩展性。其实学习程序设计又是接受一种编程思想,学习一种编程语言就是要学习这种语言的特性和优势,充分利用一种编程语言的特性进行编程,编程才能简单而高效。Java的语言特性就是万事都可以围绕着类和对象进行编程,而类的继承性和多态性又衍生出抽象类和接口的灵活运用。所以,在使用Java进行编程的过程中,应尽量把要处理的对象归到类中,进而这个类可以通过继承或者接口去进行各种处理。其次是要了解各种设计模式,设计模式能让问题多一种解决方案,也可以进行代码优化,让部分代码块可以重复使用,减少下一次碰到通用问题的编程时间。比如图形类的设计,还有各种排序接口,都是可以重复使用的。

3、测试的理解与实践:

无论是什么语言编写的程序,都需要具体实例或者观察运行结果了进行测试。经过测试的程序在使用时才可以不出现漏洞并使程序适用于多种情况,也便于代码的移植。在作业中需要多次对程序进行测试。如第九次作业中需要设计多种操作来测试程序是否能正确输出,第十次作业需要调试是否分割出了关键字字符串,也需要输入多种Java形式代码进行校验,第十一次也需要输入多种括号位置不同、负号意义不同和不合法的表达式来校验程序是否能正常运行。

4、课程收获:

面向对象程序设计要注意对事物的归类,特征分离,将实例抽象化,面向抽象编程才能让各个代码块执行各自的单一职责。如此,Java程序的可移植性,复用性的优势才可以凸显出来。学习Java要多了解Java自带的包中的各种方法,有些方法执行一些功能很实用,如果要自己写源代码就会很麻烦,且容易出错。比如Java中对字符串操作的一些方法,类似于字符串分割,字符串比较的一些功能,在String()类中都有相应的方法,如果要进行更加复杂多元的操作,也可以在类的基础上加上各种接口,引入更多的方法。Java程序对实例对象的收录处理也要更加方便,利用Set、Map、List等接口可以对多种类型的实例进行收录和遍历操作。除此之外Java语言可用的正则表达式和lambda表达式可以使得代码更加精简。在学习Java语言的特征优势的同时也需要了解更多的算法和编程语言的通用特性,比如第十一次作业中需要使用无论是C语言和C++都具有的栈,还有逆波兰表达式这种算法。如果不了解这些,处理这个问题就可能会变得非常的繁杂。

5、对课程的建议:

① 对课程讲解方面的建议:

在课程讲解时,我觉得老师可以多进行代码演示。还有对Java包中的方便好用的方法可以多一些细节讲解和使用实例。Pta上的一些题目也可以示范性的讲解,有些题目我们没有做出来的可以学习方法,做出了的题目我们可能没有用标准化的方案。老师实例代码可以规范我们的代码习惯。

② 对于pta上题目的建议:

Pta上的题目个人认为可以降低点难度,增加题量,题目太难会让有些同学直接放弃打代码,抄袭然后被查重。如果有些简单的题目,可以让暂时没有学会的同学循序渐进地在解题中逐步理解知识。题目做出也可以增加同学们的信心,不至于看到题目直接放弃。题目的设计可以更加贴近生活。题目测试点可以开放出来,转而增加代码规范的阀,避免直接输出测试点拿分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值