zoukankan      html  css  js  c++  java
  • OO第二阶段作业总结

    前言 

      本次博客是针对pta中的第4,5,6次作业的总结,其中我前面两次没有得到满分,但是都及格了,最后一次我觉得相对更简单一些。

    作业过程总结

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

      这三次作业主要围绕正则表达式的应用和图形的继承展开,其中关于正则表达式的校验两题我都觉得有点难度,要考虑的方面有点多;图形的继承三次作业都有,从第一次的只是求单个图形的面积体积等到后面两次的求全部图形面积以及排序,难度是依次递增的。

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

      我觉得图形继承问题很直观地让我们更理解封装,继承和多态,通过三次作业关于对图形问题的解决,每一次要求的提高,将图形的一些特征和求解图形面积体积的功能组合到一个抽象的对象上,各种各样的图形继承自一个最基本的图形类,同一操作用于不同的对象有不同的解释,产生不同的结果,即多态。现在我已经基本能从这些角度来解决问题了,而不只是单纯的解决当前的问题面向过程地解决问题。

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

    这阶段的作业我最主要的问题就是水文校验和简单多项式的求导,这两部分涉及了正则表达式的应用,要考虑的方面比较多,正则表达式的校验也比较复杂,得在网页上学习,这部分我和同学交流的也比较多,比校验更复杂的是校验之后的数据的处理,需要将数据分隔开来,然后分部分处理,判断数据是否格式正确以及平闰年等。我将一长串字符串分开来是用split,然后,将字符串转化成数字来处理。多项式求导我一开始也是想用split的,但是后来因为指数上也有可能有符号,就并不好用正负号来分隔开,所以后来用了模式匹配。图形继承也遇到一些问题,比如有一题需要在构造函数输出constructing +图形名称,去百度了才知道只有new出了一个对象就能自动输出构造函数中输出的部分。还有第六次作业,我明明每次输出都是和同学一样的完全正确的,都是就是过不了一些测试点,然后我把输入的部分改到了主函数就可以了,后来看同学们讨论原来是main.input的关系,因为一开始定义的input语句并不是写在主函数当中的。

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

      每次作业时间比例大概是3:2:1

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

      这次的正则表达式的校验就能很好的诠释代码严谨性的重要性,多一个空格都不行,在正则表达式这一块我就跌了很多次。

    OO设计心得
    ①对面向对象三大技术特性之间关系的理解

      即封装,继承和多态(这几个字都听厌了),封装就是将一些只属于某个对象的东西封装起来,不能随意更改,继承就是子类可以继承父类的东西并且可以扩展,弥补父类的不足,多态就是事物具有多种形态,虽然针对不同对象的具体操作不同,但通过一个公共的类,那些操作可以通过相同的方式予以调用。

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

      单一职责原则就是只有一种单一的功能,功能越多,变化就越大,会大大降低其耦合度;开闭原则即是对扩展开放,对修改关闭,这并不意味着不做任何修改,我们只需要对代码进行扩展,尽量不改变源代码。

    ③OO编程思维的理解

      核心就是封装,继承和多态,主要是为了代码以后的复用和扩展,封装之后对于他内部的一些属性和方法就不要改变了,继承父类的属性和方法也使代码更简单,实现更容易,多态则让代码更灵活了。

    ④类设计心得

      将一个对象的属性和方法封装在一个对象内,但是要注意应该是一个单一的对象,不能负担太多职责,而应该各司其职地分成几个类。

    测试的理解与实践

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

      测试是检验代码功能的最直接的方法,一段代码成功与否就看他经不经得起无数测试点的测试,测试时要找有代表性的测试点和一些普通的测试点,这些才能高效率地测试代码的健壮性。有时还能从测试点中找到代码本身的错误,可见测试的重要性。

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

    可以,Junit可以判断代码运行的结果和我们想要的结果是不是一致的

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

      这阶段作业我比第一阶段更熟练的运用了面向对象思想,所以后面对于图形继承的题目花的时间更少了,因为都是以前写过的。但是一开始的图形排序我还是用的冒泡排序而不是对图形进行排序,因为那时候我还是对arraylist等的使用不太懂,后面几次排序看了同学的代码我就回了,比冒泡简单多了,直接所有的东西都排好序了而不是知识面积。

    对课程的建议
    ①第三阶段作业难度、题量的建议

      我觉得还是不要太难了,再难一些对于我来说根本解决不了,而且作业结束了之后看大佬的代码有时候都很难看懂,从最近的一些不算特别难题目我也学到了很多。题量我觉得现在这样就还行。
    ②课程内容讲解方面的建议

      我觉得老师讲的挺好的,结合例题讲知识点再加上课后练习对知识更印象深刻,作业中一些知识点忘记了也能回头去看看自己提交的课堂作业。

  • 相关阅读:
    14-6-27&28自学内容小结
    暑假要自学Java了
    找最大值算法(面试题)
    冒泡排序(面试题)
    循环
    运算符和表达式 、 分支结构 使用三目运算符的嵌套,比较a、b、c三个整数的大小并输出结果
    运算符和表达式 、 分支结构 输入年份和月份,输出该月的天数(使用switch-case)
    运算符和表达式 、 分支结构 3 个数值进行升序排列
    运算符和表达式 、 分支结构 例题 闰年判断
    变量 、 JAVA基本类型 3.3.5. 关于“短路逻辑”的问题
  • 原文地址:https://www.cnblogs.com/1134908215qq/p/12814791.html
Copyright © 2011-2022 走看看