• Java第一阶段作业总结


    目录

    0.前言

    1.作业过程总结

    2.OO设计心得

    3.测试的理解与实践

    4.课程收获

    5、对课程的建议

      前言

    本次博客针对第一阶段的三次作业发表总结,作业要求主要是初学者对于Java的基本语法、用法和算法的理解与掌握,了解类面向对象设计的含义,为之后的Java学习打下基础。相对于编程初学者,c语言的学习一定程度上提高了对代码的熟练度,本次学习内容从面向过程转变为面向对象,在程序实现上有很大的突破。

    一、作业过程总结

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

        第一次作业(计算税率、判断坐标点所在位置、电话键盘数字字母转换、判断三角形类型、统计最大数出现次数)较为基础,主要考察基本语法结构的使用,算是Java程序初体验,了解和运用Java类结构和main函数以及基本类型和运算符,利用选择和循环结构直接解决简单的数学问题,第二次作业(求一元二次方程、判断闰年及星期几、求下一天、求前N天)考察了数组、加入了方法的使用,需要创建方法来解决相应的问题,相比于第一次作业,题目内容更为复杂一些,第三次作业(用类解决一元二次方程、日期类设计、日期问题面向对象设计的两种聚合)思路与第二次作业相似,但是方法上则需要运用类与类之间的关系,对方法的运用有更深的了解,对于每一个问题或是对象都可以创建一个类,并在写代码的过程中对功能不断完善,类与类之间可以互相调用,这提高了代码的复用性,这三次作业由易到难,知识点环环相扣、层层递进。

    ②如何通过作业逐步从面向过程过渡到面向对象;

        每一次作业增加的新的知识点,都将作为下一次作业的基础,从与c语言类似的结构选择与循环,到运用方法解题,逐渐有了面向对象的特点,再到对类的使用,解题过程从面向过程过渡到面向对象。

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

    第一次作业题目较为简单,比如第一题数据量很大们,需要反复核对题目要求和代买中数据是否一直,以及if……else结构用的是非正确;判断三角形类型时,结果正确但是测试点过不了,询问同学才知应符合题目要求的输入输出及其顺序,也学会了数学符号与运算的表示方法。第二次一开始用if语句进行手动干预,发现情况太多太复杂根本实现不了,于是想到运用数组,解决很多要求,但是在日期要求中,会忽视很多种情况,以至于运算结果错误,解决方法是一步步地列出年月日中所有特殊情况并且对这些特殊情况进行测试,得以解决,代码的简洁性也提高很多,判断平闰年时,有参和无参的区别而导致判断错误,这都是知识点不牢固。第三次以第二次为基础,运用类来解题,第一题较为简单,日期还是需要考虑更多要求,算法计算方面无太多Java特点,但是结构方面确实需要层层调用,运用起来较为困难,大多数问题还是运算部分的代码错误。
    每次作业花费的时间比例

    每次作业知识点不断增加,难度也在增加,所耗时间也更长,大概比例为1:2:4(天数),编写程序和调试程序的时间各占一半。
    对编程过程的严谨性的认识及教训

    程序的严谨性无非是时间和空间的取舍,效率和容错的pk,具体情况具体分析。对于代码量大的程序而言,在设计时就应该考虑的十分严谨,否则写到最后再来调试修改却需要花费更多的时间,在此基础上,更为重要的就是基础知识的掌握,比如公共和私有属性的区别,有参和无参的区别,这很大程度上决定着代码实现的正确与否。

     

    二、OO设计心得

    ①面向过程与面向对象的比较

    面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
    面向对象设计的基本原则理解

    理解面向对象三大基本特性是理解面向对象五大基本原则的基础。三大特征是:封装、继承、多态。

    五大基本原则有:

    单一职责原则:是指一个类的功能要单一,不能包罗万象。

    开放封闭原则:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。

    替换原则:子类应当可以替换父类并出现在父类能够出现的任何地方。

    依赖原则:具体依赖抽象,上层依赖下层。

    接口分离原则:模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来。
    ③OO编程思维的理解

    其实就是把程序看做一个个个体,个体进行分类,分级,整合的思想。
    具体分为封装,继承,多态,抽象。在程序语言做更改时,由于类与类之间遵循单一职责原则,面向对象的编程可以使风险降低,具有较高的安全性。

    三、测试的理解与实践

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

    踩了坑,你对问题的认知才会更深刻。才会更加知道测试的重要性。如果只是停留在知道上,那么依然是止步不前。测试往往是一个整体的过程,需要整体的设计与规划,不应该想到什么就做什么。重要的是,测试到底多重要,怎么保证测试的质量,怎么用测试充分保证代码质量。
    ②假如让你设计测试用例,你会如何做

    从需求方面进行测试、考虑数据边界值等进行设计。

    四、课程收获

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

    这四周来的学习过程中,我基本理解的Java的大体面向对象思想,学会了Java程序设计初步,学会了构造类和使用类,对于面向对象有了进一步的了解教训与收获是设计时要仔细,注意逻辑严谨,合理利用资源,活学活用。

    五、对课程的建议

    希望多举例,结合生活实际,这样方便理解和记忆,希望放缓布置作业速度,课堂作业太紧张,上课答题时间太,多考虑同学们的反馈,谢谢老师。

  • 相关阅读:
    CTSC2018滚粗记
    HNOI2018游记
    NOIWC 2018游记
    PKUWC2018滚粗记
    HNOI2017 游记
    NOIP2017题解
    [HNOI2017]抛硬币
    [HNOI2017]大佬
    NOIP难题汇总
    [NOI2013]树的计数
  • 原文地址:https://www.cnblogs.com/hhheap/p/12632659.html
Copyright © 2020-2023  润新知