OO第一单元(前四周)作业总结
1.作业过程总结
① 总结前三次作业所训练的内容;
第一次作业,基本的程序设计,重点考察了排序算法的实现。
第二次作业,练习一维数组的使用,涉及到数组内容的检查,两个数组的比较,最后还与排序结合在一起考察。
第三次作业,知识点包括正则表达式在Java编程中的运用(利用正则表达式对字符数据进行处理),简单的类的创建。
② 如何通过作业逐步从面向过程过渡到面向对象;
在第一、第二次作业后,并在对Java基本语法了解后,第三次作业开始初步接触到面向对象编程,尤其接触到面向对象编程三大特性之一的封装性,如类和关键字Private。
③ 作业过程中遇到的问题及解决方法
第一次作业,对Java基本语法不了解,犯了很多低级的语法错误,并且将冒泡算法与选择算法杂糅在一块,在查阅排序算法的相关资料后解决。
第二次作业,出现了格式错误,习惯性认为输出末尾不带空格,在看清题目的格式要求后修改,还有插入排序出现了逻辑错误,排序结果错误,在查阅相关资料后解决。
第三次作业,第一道题卡在正则表达式,由于书本上没有,找了视频学习了一些,所幸题目要用到的正则表达式比较简单,对构造方法的生疏让第三道题卡住了,后都在教材的帮助下解决了。
④ 每次作业花费的时间比例
2(小时):5(小时):24(小时),时间随难度增长。
⑤ 对编程过程的严谨性(软件测试)的认识及教训
软件测试是我的弱项,通常我只是在面对题目给出的一两个示例进行测试,一般都会在上PTA后会有几项纰漏,一些个例常常会被我忽视。
在日常生活中,或许是常识和一目了然的判断对于计算机就会是一个坎,我在以后的面向对象编程中会尽量从计算机的角度思考一些问题。
第三次作业的第一题和第三题在这次给了我很大教训,第三次作业的第一道题忽略了可能会出现有多个连续空格的句子,而第三次作业的第三道题我误用float型变量导致计算精度不够,换用double型变量后通过了测试。
2.OO设计心得
① 面向过程与面向对象的比较
面向对象更接近人类社会的生产模式,在解决一件事,先将任务进行整理和合理的拆分,找专业的人做专业性强的工作,从而提高生产效率,在面向对象编程中专业的人就是类,主类无需关心具体的实现,创建一个对象即可,提高了代码的复用性,减少重复编写相似代码的烦恼,同时因某些原因要修改代码,也可以减少改写量,不会“牵一发而动全身”。
面向过程和面向对象各有优劣,最大体现在开发效率上,面向对象编码的效率更高,便于维护、迭代、扩展。
② 面向对象设计的基本原则理解
共有五个基本原则:
S(单一功能原则)
O(开闭原则)
L(里氏替换原罪)
I(接口隔离原则)
D(依赖反转原则)
目前我能深刻体会其实只有第一个S(单一功能原则),一个类所承担的功能应该单一,分割清晰,当程序出问题时、需要实现新功能时或者在以前的基础上微调时容易找到要修改的地方,而且只需要改某几处的代码就可以了。
③ OO编程思维的理解
目前不敢说理解,还处于非常浅薄的地步,仅对封装有点了解,如类和关键字private就是两种封装,我会进一步学习OO编程思想,如继承和多态。
3.测试的理解与实践
① 测试对于编码质量的重要性
测试时确保代码质量的重要手段,在很多时候软件的日常使用或许不会出问题,但在不常见的情况就可能出现问题,而测试则能有效规避上述情况的发生。
② 假如让你设计测试用例,你会如何做
用例不在于数量多,而在于全面,以测试出程序是否完全实现了要求的全部功能。比如说很多时候“0”就是一个临界值,或许程序在输入正数的情况下能完美运行,可是在输入“0”或“负数“时就不一定了。然而由于生活中有些东西的数量通常都是正的,编码时容易只考虑一种情况。
4.课程收获
总结这四周来OO方面的教训及收获
练习还是太少,不熟练,基本的Java语法仍会出错。收获也是有的,感觉OO比面向对象更加“人性化”。
5.对课程的建议
如果可以,可以适当增加习题数和提早开放时间。

浙公网安备 33010602011771号