oo第四次作业
0.前言
本次作业共三次,层层递进帮助学生学会方法和类的使用并逐步理解“面向对象”的思想,帮学生打好一个坚实的基础。
1.作业过程总结
①总结三次作业之间的知识迭代关系
第一次作业运用的还是“面向过程的知识”主要是用来帮助我们重新熟悉编程的相关知识,第二次作业开始在一个类中构造并使用方法,作为“面向过程”到“面向对象”的一个过渡。第三次作业先是定义了一个简单类,再到处理时间日期的类,且把处理日期时间的类分为三个,在不断的练习中把知识层层细化,层层递进帮助同学把“面向对象”的思想融会贯通,熟练掌握类的使用。

②如何通过作业逐步从面向过程过渡到面向对象
在写作业前学习“面向对象”的相关知识,掌握类,对象,方法等的构造,使用以及之间的关系。然后仔细读题特别是题目所给出的UML图,了解题目的各项要求,按照要求“打造”一个程序。
在作业的过程中通过不断试错掌握构造类时易犯的错误,不断总结,理解,当遇到不清楚的知识点时要把握住互联网这个很好的工具,积极查找资料,实现对“面向对象”的掌握。
③作业过程中遇到的问题及解决方法
- 1. 开始对于构造的类中的方法不知道怎么使用。
解决方法:在主方法中构造对象实例,然后使用类中的方法。
- 2. 对于object类型的方法不知如何构造,该返回什么
解决方法:通过不断实验和查找资料发现返回的是一个类
- 3. 图方便,写方法时直接复制前面的方法,出现逻辑错误
解决方法:沉心静气,仔细思考找到错误,同时吸取教训,不再图方便,以后经过仔细思考后再写方法。
④每次作业花费的时间比例
理解题目:1 %
编写程序:49%
调试程序:50%

⑤对编程过程的逻辑严谨性的认识及教训
认识:编程过程中必须严格遵循逻辑的严谨性,否则一处小小的错误就可以使得整个程序变得毫无用处,并且由于代码量大很难找到错误。所以遵循逻辑的严谨性是非常重要的,帮助我们减少错误和找到错误。
教训: public boolean isLeapYear() {
boolean d = true;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return d;
} else {
d = false;
return d;
}
}
public boolean isLeapYear(int a) {
// TODO Auto-generated method stub
if ((year % 4 == 0 && year % 100 )||(year% 400 == 0)) {
return true;
} else {
return false;
}
}
这两个判断是否为闰年的方法一个有参数一个没有参数,但是在编写时图方便没有仔细直接把无参数的代码复制到有参数的上,导致参数并没有被调用,判断闰年出现错误。正是因为没有经过仔细地思考逻辑是否严谨图方便,导致程序错误且很长时间都找不出错误所在。这让我深深地认识到了逻辑严谨地重要性。
2.OO设计心得
①面向过程与面向对象的比较
面向过程是针对需要达到的目的一步步完成代码编写,而面向对象则是根据需要实现的对象构造一个个的类,将对象抽象化。相比面向过程,面向对象在后期维护的更加方便,而面向过程则在维护时需要更改的地方非常多,非常的不方便
②面向对象设计的基本原则理解
单一职责原则:类容易被修改,如果把多个功能放到同一类中一个被修改其他可能会有影响所以应该注意单一功能。
接口分类原则:一个接口应该只提供一种原则
聚合/组合复用原则:多聚合/组合,少继承
依赖倒置原则:面向抽象编程,不要面向具体编程
迪米特原则:降低各个对象之间的耦合,提高系统的可维护性

③OO编程思维的理解
参照现实世界,将一个个对象高度抽象化为类,把对象的特征变为属性,把对象能完成的事变为方法。在把类new出一个个对象实例进行操作,这使得面向对象在后期的维护非常方便。类还有封装性便于使用保证安全,继承性提高代码复用性,多态性提高程序拓展性。
3.测试的理解与实践
①测试对于编码质量的重要性
测试的重要性对于编码质量无可替代,许多错误正是在一次次测试中被查找出来,对于一个代码量巨大的程序,想要一个错误都不犯是不切实际的,所以我们必须好好把握住测试这一步,尽量减少程序的逻辑错误,不断完善提升代码质量。
②假如让你设计测试用例,你会如何做
我会随机选择三到四个测试用例,还有两个极值,即最大值和最小值的测试用例。
4.课程收获
总结这四周来在OO方面的教训及收获
教训:要仔细,注意逻辑严谨,要学会利用网络查找自己需要的资源
收获:学会了构造类使用类,对于面向对象有了进一步的了解。
5.对课程的建议
我认为应该尽量减少课堂作业,因为上课时间比较紧张,答题时间太短,老师等的也烦,同学也容易紧张,如果真的是很有必要的作业可以放到课后给我们写。

浙公网安备 33010602011771号