Java学习总结2.0

 

 

前言

对于Java的学习已经开始深入理解Java的三大技术特性:封装,继承,多态。涉及的东西多了,相对应的三次作业的难度也稍稍有些提升,尤其是水文数据校验及处理,一元多项式的求导。下面就是我对这三次作业(5-8周)的总结。

作业过程总结

    1.三次作业的知识迭代关系

第一次作业练习的难度主要是正则表达式的书写,第二次的图形题目不仅有对正则表达式的考察还有ArrayList用法,第三次作业主要是接口的应用,三次作业的知识点都是与三大技术特性相关,OO的编程思想一步步展露出来。

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

在以前的作业中主要是通过get和set方法对那个对象的属性进行操作,因为每一次作业每个对象的属性都是私有的,这样的封闭性需要继承来简化属性,方法的重复。比如其中的一个题目就是求各个图形的面积,先通过shape类总结了相同的地方,再通过子类去重写需要的方法,这就是继承。多态体现在继承之间的层次性的结构,同样的信息输入得到不同的反馈。

3.作业中遇到的问题及解决办法

第一次的水文校验作业主要就是在输入检验方面的正则表达式比较复杂,按照正常的表达式书写一旦出现错误真的是很难检查的。还有之后的作业需要用到ArrayList泛型的用法,写的时候还没讲这些内容,通过别的方式写的代码有点小问题通过不了。

4.每次花费的时间比例

第一次因为水文校验确实比较难,所以花了三天时间;第二次是多项式的求导,花费了两天时间;第三次花了一天时间。

5.对编程的严谨性的认识及教训

编程的严谨性就体现在能不能通过编译,能不能通过测试点。在添加了继承了以后,对于整个程序的严谨性就有了更高的要求了。子类的调用与父类的调用有很多的技巧性,不同的作业也有不一样的类图结构。

OO设计心得

   1.对面向对象三大技术特性之间关系的理解

封装性:封装是一种信息隐蔽,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。

继承性:继承性是子类自动共亨父类之间数据和方法的机制。它由类的派生功能体现个类直接继承其它类的全部描述,同时可修改和扩充。

多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,

综上所述:封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象,由于封装的特性需要继承性机制,避免类对象中数据、方法会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。

   2.面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

单一职责就是一个人只干一件事,专注于一件事才能更加的干净纯粹,就像是流水线上的操作,简单而又高效。如果类与类之间的牵扯过于的紧密,一旦出了问题只会变的一团糟。至于“开-闭”原则,就是人总是要有属于自己的秘密,它的开放性与封闭性都是对于不同的情况。

   3.OO编程思维的理解

对于问题,首先要有一个宏观的把控,就是要建立起清晰的类图结构。然后在确立的基本原则之下,合理的设计方法,保证职责的单一性。最后是算法的构建,确保程序的完整运行。从类到方法的逐步设计,这就是OO编程思维。

   4.类设计心得

在这方面我还没有太多的理解,在写作业的时候基本都是照抄实验指导书的类图。对于我来说,类的设计应该要符合单一职责避免类与类之间相互影响太多,便于修改和理解

测试的理解与实践

   1.测试对于编码的重要性

代码需要测试来肯定它的价值,一个无法通过测试的代码,就是一串乱七八糟的字符而已;同样的,代码需要测试来完善它,一遍是很难写出完美的代码的只能通过一遍一遍的测试来修正来达到预期的目标。在各个作业之中仅仅只是一句简单的print输出Wrong Format就能够得到分,这无疑肯定了测试的重要性。

   2.查阅资料,假设使用Junit进行程序的测试是否可行

Junit对于程序的测试还是可行的,它可以逐一测试每一个方法的可行性。但Junit更多的还是用于对每个单元的优化。

课程收获

   这几次的作业都是有完整的类图,这大大节省了写代码的时间,这些类图也向我们展示了面对对象设计的基本思路,也严格的体现了OO设计的基本原则,加强了我们对Java设计的理解。

   现在已经在家里待了好几个月,本学期也就快要过完了,这对我自己的毅力是一个很大的考验。一个人在家里真的很难不让人懈怠,这第二阶段有一次作业没写完就是因为不断地拖延时间导致时间来不及。这一阶段对我来说最大的收获就是对于自己耐性的锻炼,端正好自己的学习态度,开始适应疫情下的学习状态。   

对课程的建议

老实说我觉得现在的上课模式很好,直接通过完整的代码来讲解知识点,这样做便于理解再辅以课堂练习现场操练加速记忆,很适合我学习Java。

Java基本结构已经很清晰了,接下来可能会学习其中的一些特殊的类便于灵活的书写代码,建议就是希望老师布置大作业的时候手下留情,可以延续一下以前的风格题目与题目增强之间的关联性。

 

posted @ 2020-04-30 20:32  昵称max  阅读(103)  评论(0)    收藏  举报