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

    1. 0.  前言
        主要说明本次博客针对的作业情况

    本次博客主要针对pta中的第4,5,6次作业,第四次作业的三道题为水文数据校验及处理、蒙特卡罗方法求圆周率、图形继承;第五次作业为图形继承与多态、一元多项式求导;第六次作业为图形卡片排序游戏、图形卡片分组游戏、求素数。

    1.  作业过程总结

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

    第四次作业的三题中,第一题考察的是正则表达式的理解与使用,难度较大,特别是对于我这样对正则表达式了解较少的人来说,需要慢慢去摸索和学习,第二题体现了面向对象设计原则中的“单一职责原则”,让每个类的复用性提高,而不是将几个功能放在一个类中,这样会显得混乱,第三题中考察了对继承的理解;第五次作业的第一题是涉及了掌握类的继承、多态性及其使用方法。第二题是将类的继承和多态性,正则表达式综合起来;第六次作业增加了接口的知识,让我们在编程中逐渐掌握接口的知识。
    ②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

    我们可以通过作业来体会这种循序渐进的过程,从封装到继承,再到多态,封装是对于一个类来说的,就是把普通的对象进行封装,对象的属性设为私有的,对外提供get和set方法,其他类只能通过get和set对对象属性值进行操作。继承是发生在两个类之间,一个类继承另一个类是说这个类属于另一个类,具有另一个类的所有属性和方法,同时它还可以有另一个类不具备的方法和属性,就向像父亲和儿子一样,这也是继承这一名称的由来。多态是建立在继承的基础上的,一个父类对象可以产生多个不同的子类对象,根据这些子类对象的不同可以具备不同的方法,也就是说表现出了不同的形态即多态。
    ③作业过程中遇到的问题及解决方法

    1.编程过程中经常会遇到java.lang.NullPointerException 空指针异常的问题,几经排查,找不到任何逻辑错误,但是百度后才知道是因为对象为空却调用了它,这本是非常低级的错误,但却发生了好几次,说明我的编程过程还不够仔细严谨。

    2.在做水文数据校验及处理的题目之前,对于正则表达式的知识还基本是空白,所以在校验数据的过程中非常艰难,需要慢慢学习正则表达式,并且还要不断测试,检验正则表达式是否正确。还好老师提供了一个用于测试正则表达式的网站,减轻了一些工作量。
    ④每次作业花费的时间比例

    第一次作业:大约一天,第一题90%,剩余每题5%,大部分用在了第一题“水文数据校验及处理”,因为光是测试正则表达式就花了不少时间。

    第二次作业:大约一天,第一题20%,第二题80%,因为第二题综合了正则表达式,类的继承和多态性。

    第三次作业:大约10小时,第一题70%,第二题20%,第三题10%,第二题代码可以借鉴第一题,基本沿袭了第一题的代码,只需做一些小改动,所以完成的比较快。


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

    对我来说,比较需要注意的就是注意变量的命名和使用,因为经常会嫌弃名字太长而命名一些单个字母的变量,一旦代码长了就会混乱,忘记某个变量的作用是什么,所以希望以后自己能脚踏实地一些,按照作用来命名一些变量吧,否则实在容易混淆。
    2.OO设计心得
    ①对面向对象三大技术特性之间关系的理解

    我的理解是,封装是能够将客观对象封装成抽象的类,用类来体现它的一些属性,并且可以把成员变量隐藏起来,提高了代码的安全性;而继承是体现类之间的关系的,子类可以继承父类的所有属性和方法,还能拥有自己的属性和方法,可以对父类的方法进行重写,这种关系有助于我们整合代码中的某些对象,比如可以把相似的对象整合到一起,放在一个父类下;对于多态,继承是多态的前提,顾名思义,多态就是多种形态,子类可以根据情况的不同呈现不同的形态,这是我的理解。
    ②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

    单一职责原则:顾名思义,就是一个类最好只负责一个职责,这样分工明确,各司其职,才能让程序井然有序的运行,如果在一个类里塞了太多功能,容易发生混乱,当改变这一个类时,很有可能会牵一发而动全身,造成意想不到的破坏。

    “开-闭”原则:对扩展开放,对修改封闭;信息化时代发展迅速,以前的功能渐渐不能满足现在的需求,这就迫切需要增加新功能,但是若是修改程序会影响整个系统的稳定,所以需要在现有基础上扩展。


    ③OO编程思维的理解

    将一个大问题拆分成数个易于解决的小问题,各个击破,当一个大问题看起来复杂时,就应该将它分解,套用老方法解决类似的小问题,将重点抽象出来,忽视无用的细节,达到将整个问题解决的目的
    ④类设计心得

    我的理解是相似的类完全可以复制粘贴,再按照他们各自的特性进行修改,这样框架相同,当某个类有问题时有助于我们尽快排查出错误,也能减少我们的工作量。
    3.测试的理解与实践
    ①测试对于编码质量的重要性

    很重要,不能因为它能通过单个测试用例就结束,而应该用各不相同的用例来测试代码的坚固性,只有经过多重考验,才能说明它足够可靠。
    ②查阅资料,假设使用Junit进行程序的测试是否可行
    4.课程收获
    总结这四周来在OO方面的教训及收获

    ①教训:编程之前应该进行构思,就像画画一样,有个整体的思考,在编程开始后应该采用先写大致框架,再逐步完善的方法,这样能时刻明确自己下一步该干嘛,如果一股脑写下来容易卡壳。

    ②收获:对面向对象编程有了更深刻的理解,对封装、继承、多态的理解和使用更进了一步。


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

    建议难度适中吧,题量也是,循序渐进。
    课程内容讲解方面的建议

    建议老师多讲解实例,结合例子更加生动,也可以在课上对pta的题目进行适当的讲解啊。

  • 相关阅读:
    利用DTrace实时检测MySQl
    改进MySQL Order By Rand()的低效率
    RDS for MySQL查询缓存 (Query Cache) 的设置和使用
    RDS For MySQL 字符集相关说明
    RDS for MySQL 通过 mysqlbinlog 查看 binlog 乱码
    RDS for MySQL Mysqldump 常见问题和处理
    RDS for MySQL Online DDL 使用
    RDS MySQL 表上 Metadata lock 的产生和处理
    RDS for MySQL 如何使用 Percona Toolkit
    北京已成为投融资诈骗重灾区:存好骗子公司黑名单,谨防上当!
  • 原文地址:https://www.cnblogs.com/tj2020/p/12811965.html
Copyright © 2011-2022 走看看