OO(Java)第一阶段作业总结

Stella981
• 阅读 489

前言

      本次博客主要是针对面向对象编程学习(Java)第一阶段的总结与反思,以PTA平台的练习作业为总结评估对象,望不断学习,不断提升。

一.作业过程总结

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

• 第一次作业整体难度较小,五道试题都是基础结构中的常规类型,考察了选择、循环结构、字符编码转换以及数据精确度等基础知识,以熟悉Java基础语法为主,试题思维还是面向过程思维

• 第二次作业整体难度比第一次增加,难度适中,四道试题更加考察了Java语法中的方法使用,是使我们从面向方法开始到面向对象的前提。

• 第三次作业的难度与之前相比有了明显的提升,主要原因在于这是一次完全的思维转换,四道试题中以类的设计与类图的关系设计为主线,我们在思考和编写代码时要站在面向对象的角度,例如以日期计算与判断为主要操作对象,通过三道试题的优化与更迭,较好地实现了课程核心的转换。

②__如何通过作业逐步从面向过程过渡到面向对象

我们从第一次的****Java语言+面向过程思维,到更深的Java语言+面向过程思维,到第三次Java语言+面向对象思维,这其中由于作业试题的优化设计,是让我们基本稳步推进思维的转换和语法的学习实践,从专注于函数方法的设计,到对类和对象的定义以及方法的使用,使我们学会了更好的面向对象来设计代码。

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

第一次作业中的主要问题是第四题中对数据处理精确程度的判断发生错误,主要是由于对等腰直角三角形的边长的浮点型数判断于计算机来说对精度的控制会产生误差,要人为的控制才能解决。

OO(Java)第一阶段作业总结

• 第二次作业中的问题是第一题粗心导致输出格式错误,第四题对7,8月求前后N天考虑不周,漏掉了一个关键点导致错误。

OO(Java)第一阶段作业总结

• 第三次作业遇到了问题在于类间的方法调用与方法设计,从第二题的要求并没有这么高到第三题在类图的指导下按要求设计,这里的设计难度较高。OO(Java)第一阶段作业总结

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

• 第一次作业大约用了2小时左右,第二次作业大约用了4小时,第三次作业前后大约用了30小时左右。

• 三次作业的时间比例约为 1 : 2 : 15

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

从第一次作业开始就认识到了不仅仅是作业,当我们未来执行更高级体量更庞大的工程时,数据与算法的逻辑严谨都是至关重要的,有时候可能是一个小问题就可能导致进度停滞或未知风险,“千里之提,溃于蚁穴”,故我们应该对编程过程的逻辑严谨性导致的危害性要有充分的认识,才能避免更大的教训。

二.OO设计心得

①面向过程与面向对象的比较

• 顾名思义,“面向过程”,即注重代码内部功能如何实现算法设计的过程,对于整体来说统一性较高,更容易牵一发而动全身,就像一个座椅的一个支架断裂,整体难以实现原功能。

• 而“面向对象”注重的是对整体的选择分类处理先决逻辑性更高每个分类专注自身功能,对于整体更易解决与处理不同功能的关系,就像一本书缺了几页对其他内容影响较小,只要补齐并不会使其丧失功效。

②面向对象设计的基本原则理解

最基本最重要的核心就是——“单一职责原则”,对于分配好的类来说,每个类的逻辑上是负责其某一个职责的,就只能执行它应有的功能,而不能越界去干扰其他类的功能,这其实也是为什么要有类的功能存在的底层逻辑,就应该各司其职地处理问题。

③__OO编程思维的理解

本人对OO编程思维的理解是基于对问题处理所需功能,从逻辑上分配分类后,按要求在类中设计好内容,类间设计好高效率的关系,并对将来的可能的复用做好规划的整体性思维。

三.测试的理解与实践

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

• 第一,在于对本质功能是否能够实现的判断,由于完整的测试功能,我们才能发现不完善的错误并解决;

• 第二,在于对已经完成本质功能的程序的执行效率的提高,基于测试的时间我们可以改进算法优化执行时间,以减少存储空间的浪费和提升用户的流畅体验

②假如让你设计测试用例,你会如何做

• 第一,基本的关键功能测试点必须面面俱到,如果功能有缺陷那么此工程是不合格的;

• 第二,我会考虑在基本功能之外的交互设计,编程应用的本质就是为人类提供更友好更智能高效的问题处理能力,那么基于人性化考量,可以对人机交互的层面对代码给予更高的宽容度,也更有利于课程兴趣的培养和人员创意的开发

四.课程收获

总结这四周来在OO方面的教训及收获

•  从课程开始前我对课程的教学和测试难度等有大概的预估,但是这四周真正经历过来还是有不少体会的。

•  首先是翻转课堂的教学模式,自主学习加教师指导,学习效率变高的同时,对我们的自学与自律提出了更高的要求,需要我们及时处理问题以及和同学老师交流,如果不积极跟上并且没有良好的求学态度,这门课程将难以完成。

•  其次是测试难度,按层级递增,对我们来说富有挑战性,也是最高效的提升能力的方法,面对困难是暂时的,得到的优质思维与方法是长期的,不仅仅是课程本身的内容这么简单。

•  最后是对于未来,自身应该紧跟课程节奏,尽量走在老师的前面,主动发现问题,提出问题和解决问题,这才是学好本课程的关键要求。

五.对课程的建议

  可以基于对课程进度与学生自觉性的判断,创立小组学习制度,方便交流讨论,每周在独立完成作业的情况下对作业错误与优化的处理进行针对性交流,并截图给老师反馈,并提供难以解决的共性问题给老师,再通过老师的讲解可以提升整体的学习效率

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
2年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Wesley13 Wesley13
2年前
2019年北航OO第1单元(表达式求导)总结
2019年北航OO第1单元(表达式求导)总结1基于度量的程序结构分析量化指标及分析以下是三次作业的量化指标统计:!(https://img2018.cnblogs.com/blog/1616496/201903/1616496201903251247313
Wesley13 Wesley13
2年前
03.Android崩溃Crash库之ExceptionHandler分析
目录总结00.异常处理几个常用api01.UncaughtExceptionHandler02.Java线程处理异常分析03.Android中线程处理异常分析04.为何使用setDefaultUncaughtExceptionHandler前沿上一篇整体介绍了crash崩溃
Stella981 Stella981
2年前
OO前三次作业总结
又双叒叕转发自我的个人博客(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.mistariano.com%2Fblog%2F18)第三次作业写的仓促,很多地方写的没太走心,不出所料被hack了。虽然有点遗憾,但可以说很直观地学到了一点:尼玛Java的assert为什么要手动
Wesley13 Wesley13
2年前
OO第1~3次作业总结
作业1——多项式运算基于度量和类图分析设计先看Metrics插件做出的复杂度分析:!p1(https://oscimg.oschina.net/oscnet/123d87e58546c4287f8b76cb50279c0d8d9.jpg"metrics插件分析结果")乍一看没有红色报警,其实
可莉 可莉
2年前
20165339《Java程序设计》课程总结
课程总结一.每周作业链接汇总我期望的师生关系(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.cnblogs.com%2Ftytiswd%2Fp%2F8350369.html):谈论了一些对未来师生关系的期望学习基础和c语言基础调查(https:/
Stella981 Stella981
2年前
20165339《Java程序设计》课程总结
课程总结一.每周作业链接汇总我期望的师生关系(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.cnblogs.com%2Ftytiswd%2Fp%2F8350369.html):谈论了一些对未来师生关系的期望学习基础和c语言基础调查(https:/