ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java第二周期总结

2020-04-30 22:04:39  阅读:205  来源: 互联网

标签:总结 Java 周期 继承 通过 作业 多态 测试 封装


0.前言

 

本次主要是针对第二阶段的三次作业进行总结。

 

1.作业过程总结

 

①总结三次作业之间的知识迭代关系

三次作业主要是抽象、继承、多态展开的针对性练习,难度逐渐加强,每次作业多道题目难度也是逐渐加强的,由浅入深。先由继承渐渐深入至抽象类、多态。第一次作业前两题没涉及到继承,只是加深对单一职责原则、无参构造方法及有参构造方法的应用。后两题开始涉及到类的继承问题,让我们初步接触认识继承。第二次作业,在继承的基础上增加了多态。通过两道题目加深了对继承和多态的理解。第三次作业在继承和多态的基础上又增加了单一职责原则的应用以及“开-闭”原则的应用。

 

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

第一次作业第一题水文校验需要用到正则表达式来匹配输入数据的格式,虽然当时没做出来,后来通过老师的讲解有了一定的思路,利用类的单一职责将每一部分封装成一个类,且一个类只负责该类的职责,通过类与类之间的聚合来实现整个过程,加深了对单一职责以及封装性的理解认识。后来通过第三题图形的继承,发现继承省了好多事哈哈,因为不同形状的图形有相同的属性,通过继承可以少写挺多代码进而减少代码的冗余,更能体现类之间的关系。第三次作业图形的继承和多态让我第一次接触到了多态以及抽象类,封装和继承几乎是为多态而准备的,多态就是不同的对象对同一消息做出的不同响应。Shape作为抽象类,Circle,Rectangle,Triangle作为实体类,抽象类可以让类的设计有很好的扩展性和复用性。

 

③作业过程中遇到的问题及解决方法

这个阶段的作业完成效果相对来说应该算是比较差了,有两次都没有得到满分甚至有一次只有50分,因为水文校验那道题当时题目都有点看不明白,加上那次作业开始时间较晚,后来没有时间深入研究。本阶段的作业也让我看到了自己的弱点,比如正则表达式,StringBuilder、StringBuffe等Java中常用类的方法不够熟悉。还有每次作业都会遇到这样那样的一些小问题,都是通过询问同学得以解决。对于图形面积的排序,一开始的想法是存储到一个数组里,再通过冒泡排序进行实现,但后来通过查阅资料发现一个简单的方法,利用compare to接口可以实现对象交换,它是通过冒泡排序中比较固定的步骤封装成一个类演变而来实现的。

 

④每次作业花费的时间比例

三次作业花费时间比例4:3:2;

 

⑤对编程过程的严谨性的认识及教训

编程之前要先看清题目需求,有时候没看清题目需求导致测试点过不了最后查找时花费大量时间,最后发现是如此低级的错误人都会气傻。还有数据的格式以及输出结果的格式是十分严谨的,一个符号、英文单词拼写的错误是十分低级,不应该犯的。在写程序时可以多加一些注释,这样修改起来会方便很多。

 

2.OO设计心得

 

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

封装:就是把客观事物封装成抽象的类,一个类就是一个封装了特定属性及方法的逻辑实体。让类有了通用、灵活、独立的效果。

继承:让某个类获得另一个类或多个类的属性。让类与类之间有了直接的联系。

多态:不同的对象,接收到不同的消息会有不同的行为,也就是说一个类有不同的形态。

多态必须要求有继承,抽象类就是为了继承而生,而它们的基础都是类的封装。

 

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

单一职责原则:一个类只做一件事情,并且专注于这件事。如果需求发生改变,只需要对对象对应的类做出改变,对其他功能不会产生影响,这就实现了功能的单一。

“开-闭”原则:对于扩展是开放的,可实现新功能的添加。对于更改是封闭的,不能更改原本的功能。抽象方法封闭起来。开放继承可扩展。

 

③OO编程思维的理解

编程思维应该不仅仅是解决问题,而是如何高效地解决问题。首先要了解整个事物的流程,再选择一种最优的方法解决问题。

 

④类设计心得

类最主要的还是坚持单一职责原则,一个类做一件事,分工明确就会有秩序。也要考虑一定的“开-闭”原则,增加代码的扩展型,使其变得更灵活。

 

3.测试的理解与实践

 


①测试对于编码质量的重要性

测试对于编码是很重要的,通过测试可以检查程序的功能是否能在各种状况下正常运行,功能是否都已完全实现,测试不仅仅是找到编码的错误,而是通过错误原因等发现自己的缺陷。通过测试保障代码的质量以及实现功能的稳定。但是通过本阶段PTA习题测试点,发现其中还是存在bug的,有待改善。

 

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

使用Junit进行测试是可行的,他可以通过编写一系列的测试来对项目的所有接口和方法进行测试,Junit有断句功能,如果测试结果不通过会告诉我们哪里没有不通过,如果Junit报告了测试未成功,它会区分failures和errors,在此基础上进行修改,可以大大提高效率。

 

4.课程收获


这四周OO编程训练以来,逐渐养成面向对象的编程思维,一次次的加深我对其思想和设计的理解和体会。解决一个个问题实现一个个功能时,会想到一个个模块地去解决,同时也会遇到一点困难,逐步认识自己的不足,但解决之后就会有收获的,所谓”需求推动进步“。通过本阶段的作业,抛开基本的继承、多态,还学习到单一职责原则和“开-闭”原则,这样大大提高代码的质量,是一个不错的收获

标签:总结,Java,周期,继承,通过,作业,多态,测试,封装
来源: https://www.cnblogs.com/Greece-1018/p/12811359.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有