OO第二阶段总结

0.前言
本次博客针对第二阶段JAVA课程的总结,作业的难度也有了一定的加强,这四周内我们对JAVA的掌握水平有了一定的提升。

1.作业过程总结
总结三次作业之间的知识迭代关系:

第一次作业着重考察锻炼我们对基本语句的运用掌握和方法属性的简单操作;第二次的作业中,引入类和类方法的概念,对我们深入学习java有了很大的帮助,我们需要创建很多方法和属性来实现代码功能,其中部分方法功能相似却又不尽然相同;第三次作业则引入了更加深层次的面向对象的概念,作业要求我们针对每个实现功能的对象设计对应的类,通过第三次作业训练的巩固,我们更加了解的面向对象的含义。

如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性:

课堂上的学习我们了解并掌握了封装性,并运用在了作业题目中。PTA发布的第四次作业第三题和第五次作业第一题的图形继承题,我们编写代码实现图形的继承,从而理解了面向对象的继承性。PTA发布的第五次作业第一题的图形继承与多态题,我们编写相关代码掌握了类的继承和多态性。
作业过程中遇到的问题及解决方法

第一次作业中if else语句使用经常出错,导致情况不完整,输出答案出现错误,导致失分。

第二次作业主要是在求日期的方法编写上花费大量时间,如求前n天后n天的日期,出现了跨年情况时没有考虑清楚导致出现13月的情况。以及求当前日期距离1年1月1日的天数出现了问题,导致答案错误。

第三次作业存在运行超时的问题,通过询问同学,查找资料改进算法,变换求解思路从而解决了这一问题。以及编程过程中经常会遇到java.lang.NullPointerException 空指针异常的问题,查找资料之后才知道是因为对象为空却调用了它;
每次作业花费的时间比例:

12:8:6
对编程过程的严谨性的认识及教训:

字母的拼写要注意,如方法的命名,在代码很长的情况下,如果不一致,修改起来会很麻烦;输出格式也值得注意,有时候一个空格的使用对输出结果也会有影响;类之间的关系也得特别注意,尽量不要出现空指针的情况。
2.OO设计心得
对面向对象三大技术特性之间关系的理解:

封装性:就是把普通的对象进行封装,对象的属性设为私有的,对外提供get和set方法,其他类只能通过get和set对对象属性值进行操作。

继承性:是发生在两个类之间,一个类继承另一个类是说这个类属于另一个类,具有另一个类的所有属性和方法,同时它还可以有另一个类不具备的方法和属性。

多态性:是建立在继承的基础上的,一个父类对象可以产生多个不同的子类对象,根据这些子类对象的不同可以具备不同的方法,也就是说表现出了不同的形态即多态
面向对象设计的基本原则理解(单一职责原则及-原则):

单一职责原则:就一个类而言,应该仅有一个引起他变化的原因。当一个类承担了过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当设计变化时,设计会遭受到意想不到的破坏。软件设计真正要做的事,就是发现职责,并把这些职责相互分离。

开放-封闭原则:软件实体(类,模块,函数等),应该可以扩展,但不可修改。即:对于扩展是开放的,对于更改是封闭的。一个较好的实践方式是等到变化发生时立即采取行动。在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。
③OO编程思维的理解:

OO编程时需要合理运用封装、继承、多态三大技术特性,从而使得代码更精简,也可以使代码更容易维护、更改与复用。
类设计心得:

1.保证数据的私有性(private):为了实现一个类的良好封装性,一定不要使用其他的方式去声明成员变量,这是为了后期代码维护做的基本准备.

2.对数据初始化:虽然编译器会自动对成员变量进行隐式初始化,但是为了可读性,应该为变量提供初始化或是利用构造器进行初始化.

3.不要在类中使用过多的基本类型:当类中存在多个基本数据类型时,用一个引用类型来包装这些基本类型,这样可以增强其可读性,且后期要替换这个类的名称也更简单.

4.并非所有的域都需要getter/setter:例如:在一个Employee类中,雇员的薪水是可以有getter和setter的,但是雇员的雇佣日期就不应该有setter.

5.一个类的功能尽量不要太繁杂:如果一个类的某些功能明显的可以分为两类,就应该将其分解.

6.类名或者方法名的名称要可以体现其职责


3.测试的理解与实践
测试对于编码质量的重要性:一份科学的代码,针对的是多种情况下的运算,所以必须要经过科学缜密的测试,从而判断编码质量,只有通过了测试的代码,才是能够正常进行使用的代码,才能实现需求。
查阅资料,假设使用Junit进行程序的测试是否可行
4.课程收获
总结这四周来在OO方面的教训及收获:了解了面向对象的三大技术特性,从而对面向对象的概念有了更深层次的了解,这些都是JAVA编程过程中必不可少的知识点,只有打下扎实的基础,才能学习更深层次的知识。
5.对课程的建议
第三阶段作业难度、题量的建议:我认为难度和题量应该维持一个相对合理的比重,如果难度大时可减少题目至两题左右。难度一般的话三到四题左右。

课程内容讲解方面的建议:建议多讲解例题,帮助我们更好的理解java编程这门课程。

原文地址:https://www.cnblogs.com/blued--/p/12813614.html