zoukankan      html  css  js  c++  java
  • 第一阶段学习总结

    第一阶段的学习已经结束,在此发表一些感想和总结。这一阶段共有三次作业,三次作业慢慢从简单过渡到复杂。

     
    1.作业过程总结

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

    第一次作业对编程的要求并不高,只需要了解一些java简单的输入输出语句和字符的转换就可以完成作业,在main函数中就可以实现。大部分还是与C语言相似,比如说if,else ifwhile语句。第二次作业中增加了一些java中类的用法,通过返回值booleantruefalse判断是否为闰年,函数之间可以直接调用,比如求某个日期的下一天或者前N天,就必须要知道有关日期是否为闰年;还有方程式中根的判断与求解,需要编写多个方法,然后函数之间互相调用完成要求。第三次作业中相比较而言就全面一些,其中包括创建对象和获得属性的类方法,比如求解日期那题,需要写的类很多,但是在这些类中又需要将第二次作业中日期的求解中的一些类方法,只需要把它们调用过来,便可以使用。
    ②如何通过作业逐步从面向过程过渡到面向对象;

    比如说日期这一块的求救,先是一个判断是否为合法取值日期,然后需要一个boolean返回值的类方法判断是否为闰年,接着需要一个计算当前日期到某一日期之间相隔的天数的类方法,再通过一些类最后完成题目要求,这些都是面向过程;目的是计算出某个日期前后多少天的日期,最终需要的是达到面向对象,如图。


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

    第一次作业中计算税额的那题,一直答案错误,从前往后检查了很多遍,每一遍都能发现不同的问题,数字写错了或者是范围弄错了,归结于还是自己的粗心。求日期的下一天,自己类方法写好了,但是输出还是原日期,数据并没有得到更新,检查以后发现是自己在main函数中直接输出year,month,day,虽然调用了next()函数,但输出的还是输入时候的year,month,day,解决办法就是将输出放在next()函数中,就解决了。最后一次作业中日期那题花费了太多时间,先开始是DateUtil类的构造方法中,题目要求的类方法中基本都需要DateUtil,在求某日期的下n天和前n天问题上,徘徊了很久,想了很多种方法但是总是碰到某个特殊日期就卡到了,于是就删了重新写,删了很多次,最后理清楚逻辑,先将日期调到当年的1.1,然后从这天开始使用循环的方法计算出n天后或n天前,这个问题解决了,但是又碰到超出int的最大值2147483647所以自己就写了个if()判断n是否大于366或者365,如果大于就减去这个数字,就解决了超过最大值的问题。
    ④每次作业花费的时间比例

    2;3:5
    ⑤对编程过程的严谨性的认识及教训

    那道三角形形状判断的题,每种特殊三角形的判断都没有错误,自己再怎么检查也还是有个测试点过不去,自己原先写的是先判断数据是否合法然后再根据各条边来判断特殊三角形,else就为普通三角形,最后请教了室友;思考了下发现自己这个逻辑有问题,应该是先判断普通三角形,然后再在普通三角形中去判断有没有特殊三角形。这就是编程过程的不严谨,导致出了问题,也有很多时间耗在了这上面,从中也得到教训,编程过程一定需要抱着严谨认真的态度。
    2.OO设计心得
    ①面向过程与面向对象的比较

    面向过程注重解决问题的方法,先分析解决问题的步骤,然后写各个方法来完成这些步骤;而面向对象就是类中某个具体的实例,比如说run()和eat()方法中,只有people类的对象可以实现这两种方法,给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。

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

    想要解决一个问题,需要分析解决问题的步骤,然后通过类方法来实现各个步骤,设计一个类对象来完成这些类方法,最后实现问题的解决。
    ③OO编程思维的理解

    分析解决问题的步骤,然后编写多个类方法来实现需求,面向对象的三大特性:封装、继承、多态,现在已经初步了解了封装和继承,确实给编程带来了便利,

    1. 测试的理解与实践
      ①测试对于编码质量的重要性

    有的代码你编写完成,仔细检查也没发现错误,逻辑好像也正确,但是如果不进行测试,在使用过程中可能突然就出现了bug,到时候再改就有些为时过晚,而且让人质疑代码的质量,所以说测试对编码质量是很重要的。
    ②假如让你设计测试用例,你会如何做

    首先当然需要一些普通用例来进行基本测试,然后我会设计一些特殊用例,每种特殊用例都至少需要两例,以防是凑巧;还有一些最大值最小值自然也是要测试的。
    4.课程收获
    总结这四周来在OO方面的教训及收获

    从开始的一无所知到现在的初步了解,学习内容也在慢慢过渡,了解了一些java编程的基本思想和内容,同时也得到了一些失败的教训,之前总喜欢在一个main函数里实现所有问题,后来发现这样很麻烦而且繁冗复杂,学习创建类方法分的清楚明白,出错也知道在哪个地方,帮助更好的编程。
    5.对课程的建议

    希望可以多多学习一些典型案例,多多了解合适的编程方法,加以借鉴理解,最后得以运用,因为了解的还不多,有的时候听老师讲过之后可能就忘记了,希望老师在讲课后可以把课堂所用代码发出来,课后可以再理解理解。

    6.下一阶段学习

    希望可以跟上老师的步伐,前面几次课堂作业完成的还是有些吃力,不是很懂其中的缘由,自己需要再多补充一些基本的内容。希望可以跟上老师课堂作业的步伐,同时马上也要迎接大作业了,需要加以理解面向对象的内容,按时完成作业。

  • 相关阅读:
    iOS UI03_LTView
    这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script
    LeetCode :Sudoku Solver
    细说linux IPC(三):mmap系统调用共享内存
    SharePoint 2013 同步FBA认证用户
    spinlock,mutex,semaphore,critical section的作用与差别
    仿函数
    浅谈xss原理
    onedrive实现excel在线编辑 online excel
    CPU组成
  • 原文地址:https://www.cnblogs.com/liujixiang/p/12633046.html
Copyright © 2011-2022 走看看