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

    前言

      本次博客针对java课程前三次pta作业进行总结。

    作业过程总结

    一、知识迭代关系

      第一次pta作业(计算税率判断坐标点所在范围电话键盘字母数字转换判断三角形类型统计最大数出现次数)主要是对一些实际问题进行解决,主要是熟悉Java语句的用法,并没有自己新建一个方法。

      第二次pta作业(求一元二次方程判断闰年及星期几求下一天求前N天)需要自己建立方法,再后三题中能更加清楚的感受到创建方法的好处,可以在解决同一个问题的前提情况下对方法复制,大大节省了编程时间。

      第三次pta作业(用类解一元二次方程式日期类设计、日期问题面向对象设计(聚合一)日期问题面向对象设计(聚合二))需要使用到类的知识,在后面的三题中,运用了不同的类调用关系,实现了类似的功能,在这次作业中能体会到面向对象与面向过程的差别,主要心得将在后面论述。

    二、从面向过程过渡到面向对象

      第一次作业对问题的解决,主要面向过程;第二次运用到了方法,使得代码更加简洁,也难以感受到面向对象是什么样子的;第三次作业对上一次的作业进行更深入的探究,尤其是后面两题类的聚合,可以说对运用类的要求很高,课堂作业中对圆柱与圆的类创建,在包含关系中能体会到对象的好处,在一个类中可以可以用到另外一个类,这样不仅结构清晰,还能让每个类的作用明确。

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

      第一次作业没有遇到技术性的问题,主要是对Java的熟悉,运用C语言的知识类比到Java。

      第二次作业主要是在求日期的方法编写上花费了功夫。

      第三次作业存在运行超时的问题,通过改进算法,变换求解思路来解决,除此之外还有一部分的答案错误,通过自己用编译器来测试测试点来判断哪里出了问题。

    四、花费的时间比例

      第一次作业:主要是eclipse的使用花了时间,总用时约4小时;

      第二次作业:主要是对求日期问题的解决,总用时约3小时;

      第三次作业:主要是对于类的编写和错误调试花费大量时间,总用时约9小时;

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

      这三次作业让我首先体会到的是审题的重要性,题目中有很多信息暗藏测试点的信息,需要多加注意。还有对于测试点上的提示,加以理解,能自行测试数据,可以得出哪一步出了问题。最后是对运行超时的理解,主要是循环语句过多导致的,还有带码复杂性也会导致时间复杂度高。

    OO设计心得

    一、面向过程与面向对象的比较

      面向过程,体现的是解决问题的步骤,程序会一步步有序执行,就相当于执行一个个流程,相对来说程序复用性弱;

      面向对象,主要是对每一个类的的设计,还有类与类之间的关系,将对象抽象成类,再通过类里面的方法执行问题更加灵活,复用性强。

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

      单一功能原则:每个抽象对象对应一个类,也就是一个类专注一个具体事物,假如一个对象同时包含日期、月份、年,那么这个对象想要更改方法就会需要改动许多地方。

      里氏替换原则:基类对象可以替换成子类对象,也就是狼属于动物类,但是狼不能调用被捕食的方法。

      开闭原则:在两个模块有相互依赖关系时,低一级模块使用高一级模块时需要使用接口,也就是day类中使用Month month;来调用Month类。

      依赖反转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象,抽象不应该依赖细节,细节应该依赖抽象。对这个理解不足。

      迪米特法则:类与类之间的关系越少越好,方便类的复用,例如圆柱类中的求表面积方法对圆类中求面积方法有依赖,那么圆柱类复用性会降低。

      组合/聚合复用原则:要尽量使用类的合成复用,尽量不要使用继承,能有效降低耦合度。

      针对接口编程,而不是针对实现编程 :父类中的各个方法的具体实现不在父类型中,而是在各个子类中,同样时为了提高复用性,便于维护。

    三、OO编程思维的理解

      Java的编程主要时对于类的设计构思,比如设计一个游戏,面向过程解决方案是将每个游戏步骤和每个界面进行编写,通常每个界面使用一个函数,而Java则是对内部的对象抽象为类,再通过对game类的控制,实现游戏。

    测试的理解与实践

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

      测试对不仅对程序的正确性提出要求,还对输入数据的审判提出要求,比如说对输入超出范围的数据会进行提示,还有对一些边界或者极限值进行判别,测试出代码的实用性。可以说,测试是检测代码有效性的一种简易而高效的方法。
    二、假如让你设计测试用例,你会如何做

      首先,对于基本的测试用例,我会设置两个,对于各种边界值情况进行测试,防止程序的漏洞,还有错误数据类型的输入和错误数据范围的测试用例。

    课程收获

      第一期的Java作业教训主要是对问题的细节进行处理,还有对时间复杂度的控制,解决问题的方法往往不止一个。收获是解决问题可以从多方面进行考虑,发散思维;还有就是编程需要勤动手,在学习到新知识后要及时加以复习。

    对课程的建议

      这样限制时间的课堂作业能增大压力,对编程能力的提高极大的好处。

    学习计划

      在日后学习上,我会按质按量完成任务,不松懈,对mooc上的视频进行提前学习。

  • 相关阅读:
    Logstash:input plugin 介绍
    Beats:使用Elastic Stack对Redis监控
    Elastic:Elasticsearch的分片管理策略
    Beats:使用Elastic Stack对Nginx Web服务器监控
    Beats:使用Elastic Stack监控RabbitMQ
    Elasticsearch启动https访问
    Elasticsearch:跨集群复制 Cross-cluster replication(CCR)
    Logstash: 如何创建可维护和可重用的Logstash管道
    Solutions:Elastic workplace 搜索:随时随地搜索所有内容 (二)
    Solutions:Elastic workplace 搜索:随时随地搜索所有内容 (一)
  • 原文地址:https://www.cnblogs.com/nchu18207324/p/12609779.html
Copyright © 2011-2022 走看看