zoukankan      html  css  js  c++  java
  • OO第一作业周期(前四周)总结

    0.本次博客针对Java课程前三次PTA作业进行总结

    1.作业过程总结

    <1>.总结三次作业之间的知识迭代关系:初步了解Java的一些基本的操作,第一次作业主要是关于Java的最基础的练习,算法直接在main函数面实现,不会太复杂。第二次作业是关于日期方面的题目,对于日期的相关操作都在一个类当中实现,每个功能写成了一个方法,所有功能由所有方法一步步实现,一共有四个题目,有些方法可以直接搬用,甚至不用修改。第三次作业也是关于日期方面的操作,算法都在第二次作业基本实现了,但是对于编程的思想有了要求,要求用不同的类来实现每个功能,并且还有分类与类之间的关系来实现。

    <2>.如何通过作业逐步从面向过程过渡到面向对象:三次作业由简单到复杂,就是先让我们熟悉一下Java语言,所以通过第一次作业熟悉基本操作之后,第二次的作业也不会过于陌生,通过第二次这一次过渡的环节:在一个类当中用几种方法用来所要实现的功能;再然后是第三次就引入了面向对象的思想,跟着题目给的UML类图,写好每一个类的功能以及类与类之间的关系,能够较好理解并完成第二题,第三题就是需要理解好每个类的关系,就比如第三题当中的Year类,Month类,Day类,DateUtil类的关系,通俗的说就是一层包一层,Year类是最里面的一层,其次是Month类,Day类,再全收在DateUtil类当中算法第二题基本可以照搬,理解了第三题之后,第四题也就比较容易解决了。

    <3>.作业过程中遇到的问题及解决方法:第一次作业中由于对java基本算法操作不熟悉,犯了好多小错误,如第四题:输入三角形的三条边,判断是什么三角形。等腰三角形判断出现错误,在a=b=c的条件下还应判断a*a+b*b-c*c>-0.0001,边界判断出错。

    第二次作业中对java算法有了基本的了解之后,写代码也顺手了一些,但仍犯了很多错误,如第二题中,求出year-month-day到0001-1-1的距离天数出错,平年2月28,闰年2月29等问题考虑不周全。

    第三次作业中,主要问题在于类与类之间的关系没有整理好,调用方法以及返回值的问题,第二题及第三题遇到问题较多,类与类之间的关系有点混乱,直接访问和间接访问出现大量错误,在多次询问同学之后及多次修改后才解决了问题

    <4>.每次作业花费的时间比例:第一次作业花费一下午,大概6小时。第二次作业花费花费12小时左右。第三次作业花费三天时间左右才完成。

    <5>.对编程过程的严谨性的认识及教训:编写算法之前一定要考虑周全,最好把所有情况都考虑清楚写在草稿纸上,不然修改代码是个巨大的工程。对于编程的严谨在于敲代码之前构思好框架,对于一些特殊情况的考虑,如第三次作业中,日期是否输入正确,大小月份,平年闰年必须考虑清楚,不然就会出错。

    2.设计心得

    <1>面向过程与面向对象的比较:通过这三次作业,从面向过程过渡到了面向对象的思想,面向过程主要是在于考虑思考如何去实现这个算法,以过程为中心,更加侧重与算法实现方面的问题;面向对象在于考虑对象问题,把每个对象分开考虑,考虑每个对象所应有的属性和方法。这样才能完成一个比较完善的代码。

    <2>.面向对象设计的基本原则理解:编写的每个类应单独考虑,明确这个类的主要功能,并完善功能。

    <3>.编程思维的理解:可以分为四个步骤:分解思维—抽象理解—模式问题—算法执行。分解思维:是将一个大问题拆解成许多小的部分。这些小部分更容易理解,让问题更加容易解决。抽象理解:是关注关键信息,忽略不必要细节的过程。模式识别是识别不同问题中的模式和趋势的过程。你能从以往的经验中得到规律并且举一反三将它运用到其他的问题中。算法执行是一步步解决问题的过程。当你准备去学校,系好了鞋带.你却没有意识到你已经在日常生活中使用流程建设了。

    3。测试的理解与实践

    <1>.测试对于编码质量的重要性:编写出没有语法错误的代码并没有那么难,但编写出完美的,没有bug的代码是比较困难的,所以需要我们同学认真思考,认真编写,完成后对代码进行测试,测试这一过程很重要。

    <2>.假如让你设计测试用例,你会如何做:我设计测试用例首先是用普通用例,首先这是检查代码大致的正确性,其次再是考虑一些特殊情况,尽可能全面地考虑所有特殊情况。

    4.课程收获

    <1>.总结这四周来教训及收获:学习编程,不仅是技术,还有解决问题的思维、创造力和自主学习能力。对类的使用要严格根据题目要求来,对类的命名要规范,直接访问和间接访问有极大不同,下次作业要尤其注意。

    5.对课程的建议

    <1>:课堂建议:建议老师多举一些例题,让我们加深印象,能更好的掌握知识点。以及可以适当地增加课间休息。

  • 相关阅读:
    LeetCode 811. Subdomain Visit Count (子域名访问计数)
    LeetCode 884. Uncommon Words from Two Sentences (两句话中的不常见单词)
    LeetCode 939. Minimum Area Rectangle (最小面积矩形)
    LeetCode 781. Rabbits in Forest (森林中的兔子)
    LeetCode 739. Daily Temperatures (每日温度)
    三种方式实现按钮的点击事件
    239. Sliding Window Maximum
    14.TCP的坚持定时器和保活定时器
    13.TCP的超时与重传
    12.TCP的成块数据流
  • 原文地址:https://www.cnblogs.com/blued--/p/12627074.html
Copyright © 2011-2022 走看看