OO第一作业周期总结
1.作业过程总结
①总结三次作业之间的知识迭代关系
第一次作业主要是针对java程序控制结构的熟悉和灵活运用,for循环、if-else语句、switch语句的使用频率相对较高,另外根据需求进行数据类型之间的转换,字符串和数组的使用,简单的类、方法和对象的构造,利用String、Math类、数组原本的一些方法,对输入是否合法及各个情况的分别讨论思想的建立。
第二次作业在第一次作业的基础要求上,增加了除主方法外其它方法的构造和使用,例如:int、String、boolean返回类型的方法,一个方法对另一个方法的调用。对各数据类型的数组和字符串应用较多。
第三次作业中主要一是类的设计,编写的方法多了以类的对象作为返回值或者方法中传入类对象,在方法中new出对象并调用其中的方法。二是面对对象设计,根据给出的UML图,构造相应的参数和方法。
②如何通过作业逐步从面向过程过渡到面向对象
初步作业中,针对的是解决问题思考其实现过程,而后根据各题目要求的指导,学会了构造类、方法和对象,事先提取出各个题目中的对象。
③作业过程中遇到的问题及解决方法
a.没有弄清楚题目,和一些输出的细节要求导致浪费时间,效率不高。开始敲代码前,根据题目捋清思路,明确需要构造什么类、方法及其功能等。
b.输入数据,要求以0结束。通过if-else,分情况break和add,另外转换成数组再进行比较。
c.第一、第二次作业主要是在数组和字符串的使用出现问题,计算方法,出现违反。重复多次的修改和调试。
d.以对象为传入参数和返回值的方法,在里面创建对象后,进行一系列操作,输出为0。忘记需要将传入的参数赋值给它或者直接用。
e.创建非静态内部类编译错误。实例化内部类。
④每次作业花费的时间比例
1.5:1.2:2
⑤对编程过程的严谨性的认识及教训
通过这几次作业,pta中的输入和输出的格式要求严格,不容许半点的不符合;输入后需要对输入内容判断是否为合法的输入并且是否为规定范围内进行分析;在实现功能的编程,根据需求分类讨论,没有new出对象,赋值等,都可以导致结果错误。从而认识到编程需要很强的严谨性,先搞清楚输入输出格式要求,可以先用纸笔列出要求和自己编程需要创建的哪些参数和方法,减少编程思路中断的次数,提高效率。
2.OO设计心得
①面向过程与面向对象的比较
面向过程是分析解决问题需要哪些步骤,一步一步依次列出,再调用相应步骤的函数;面对对象是考虑构成问题的有哪些对象,然后分别以对象为单元创建参数和方法。
②面向对象设计的基本原则理解
单一职责,创建类,尽量一个类里实现一种功能,详细化,减少相互之间的影响,更好修改;封装,可以构造函数中的一些属性设为private,防止其它类直接使用,起保护作用。
③OO编程思维的理解
OO编程就是以对象为基本单元创建,同时每个对象里面都有自己的属性和方法,每个类只做一件事情。只有main函数里面为唯一入口,通过调用对象实例来解决问题。
3.测试的理解与实践
①测试对于编码质量的重要性
编程就是为了实现用户要求的功能, 通过测试可以知道代码中大概哪些部分符合要求,哪些需要进行修改,有目的性,最后能够呈现好的给对方。
②假如让你设计测试用例,你会如何做
如果让我设计测试用例,我会先考虑输入格式及内容是否符合规范,特别是在范围边界值,一些较为特殊的情况,然后再在具体的每种情况里面选择大概三组数据测试。
4.课程收获
在编程中数组和字符串的使用还不够熟练,导致调试功能花费了比较多的时间,这是可以避免发生的情况;编程前没有明确输入输出的各个要求,后面测试才发现,又回去修改。
逐渐习惯以面对对象编程思维,根据题目考虑问题时,先想到里面包含的对象有哪些,将问题分解成对象并进行创建、方法,尽量一个类只做一件事情;测试对于一个程序非常重要,衡量了最后编程结果是否成功,各种情况都要考虑周全。通过这三次作业,我慢慢对编程中的框架有了更清晰的认识,一些关键词的功能和使用,static、private等。
5.对课程的建议
希望一次作业的结束后,老师可以把一些参考代码能够发给我们,因为有的作业问题并没有解决,在看完别人的代码,了解别人的思路后,取长补短,能够对自身进行改进,也是在学习中。

浙公网安备 33010602011771号