面向对象第一单元作业总结
1、 前言:
第一单元作业共有三次,第一次有四道题,一、对三个整数进行排序,二、对四个整数进行排序,三、对十个整数进行排序,四、对多个整数进行排序,第二次有五道题,一、判断两个数组是否完全相同,二、判断两个数组是否相同,三、判断数组中是否有四个连续相等的数,四、合并两个有序数组为新的有序数组,五、对整型数据排序,第三次有三道题,一、逆序输出英文句子,二、用类解一元二次方程,三、创建账户类Account。
2、 作业过程总结:
(1) 第一次作业,主要是考察面向对象语言中的输入输出语句和循环语句以及条件语句的灵活运用,四道题最开始从三个数开始排序,每道题需要排序的数的个数增加,到最后一道题算是对第一次作业的一个总结。
第二次作业,以第一次作业为基础,在仍然使用循环语句和判断语句的同时加入了break、return、continue这三个关键字的用法,控制循环语句的执行,何时退出循环,退出哪层循环,控制循环次数。最后一题还涉及到了子函数的使用。
第三次作业,相较前两次而言,难度有了明显的提升,开始接触到了面向对象的核心内容,比如第二题第三题都涉及到了类以及方法的使用。
(2) 前两次作业是对面向过程中的一些基本语法和逻辑思路等内容的回顾,直到第三次第一题,通过对字符串数组的处理对面向过程思想做了总结和告别,第三次作业后面两题,就是把类和方法作为从面向过程思想到面向对象思想的过渡,整个过程顺气自然并不显得突兀,这就说明面向过程思想和面向对象思想二者相互之间有着必然的联系。
(3) 在作业中遇到的问题主要还是对程序代码的调试,在eclipse上编译出代码,运行,测试修改最后在PTA平台上提交,测试答案经常出现的情况就是eclipse上运行没问题,到了PTA上就会出现诸如格式错误或者是答案错误的提示,这就说明我们的程序代码还是没有达到要求,还是需要反复的测试,修改。在做前面两次处理数组的时候经常应为空格的问题导致结果错误,后面第三题的三道题在逻辑方面也出现了一些问题,最后终于通过对代码的分块调试,测试变量在程序运行到某一时刻的数值大小,最终慢慢修改调试解决问题。
(4) 三次作业花费的时间比例大概是1:1:2,前两次作业花费时间大致相等,第三次作业则较多。
(5) 只有反复测试和不断修改才能使代码更加完善,需要的就是耐心和细心,仔细阅读题目,仔细观察输入和输出的格式,多注意一些细节的东西,尤其是空格的位置和数量,有时候不单单是为了使输出结果更加美观,更加是为了代码的本身需要。
3、 面向对象设计新的
(1) 面向对象与面向过程的比较
最基本的不同我认还是编程思想的不同,面向思想过程是一种以过程为中心的编程思想。都是以什么正在发生为主要目标进行编程。面向对象语言是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
(2) 面向对象设计的基本原则理解
单一原则,就一个类而言,应该专注于做一件事和仅有一个引起它变化的原因,我的理解是一个类只解决一个问题,好多个类在一起共同解决一个完整的问题,将一个大问题分成许多个小问题,一个个小问题就是一个个类,类里面包含的方法就是解决小问题方法,小问题都解决了,大问题自然而然就被解决了。
(3) 面向对象编程思维的理解
把编程看成一个个的个体,在对个体使用分类、分级、整合等处理方法,最后汇总回到编程本身,把大问题化为小问题,先解决小问题,最后回到大问题本身就会因为小问题的被解决而被解决,就算,没有被完全解决,也会变得容易得多。
4、 测试的理解与实践:
因为eclipse里的调试功能还没有完全掌握,于是就用了最笨的方法,直接输出,当推演不出某个变量在程序执行到某一行时的变化时,我就直接使用了输出语句将其输出了,这样虽然比较的笨,但是比较直接,我经常在对变量进行处理的同时也将其输出,输出的时候也会在输出结果中加入标志,分辨输出的时间,慢慢调试,从一开始的程序编译错误到答案错误,继续修改、输出,修改到格式错误,在慢慢改 ,直到最后答案正确。
如果让我设计测试用例的话,我不会用我第一时间想到的测试用例进行测试,那样的话,大家的思想不会相差太多,大家都能想到的东西就没那么实用了,当然正常数据的测试还是必要的,我还会使用某些突发奇想地东西来测试,比如第三次作业第一题,用到了正则表达式匹配英文字母和数字,如果我再加入一些别的符号,比如俄文字母或是别的国家语言的基本字母,测试结果会怎样。
5、 课程收获
在中学时期做题的时候我就会把一个问题分成好多的小问题,然后一个一个的解决,最后回到答完题本身,就会发现,问题已经解决了,现在学习的面向对象思想,说白了就是分类讨论,分类封装,最后汇总,这种思想看似麻烦,实际生活中解决问题的时候,确使最行之有效的。