zoukankan      html  css  js  c++  java
  • Java最后阶段总结

    前言
    本次博客是针对我们java第三阶段的作业(共三次)和java整个学习过程发表的一个总结性博客。第三阶段的作业相比前两个阶段难度增加了不少,当然,经过这次作业,写代码的能力也提高了,对类的设计也有了不一样的理解,对面向对象的理解也更加深刻,下面是具体的内容:

    1.第三阶段作业过程总结
    ①总结三次作业之间的知识迭代关系

    第一次作业就一道题目,是对雨刷功能的扩展设计。在课堂上老师讲了普通雨刷的设计,所以大体的思路和类的设计是清晰的。这次作业是在普通雨刷的基础上对程序进行重构,使得程序可以对功能进行扩展,在设计类方面在原有基础上使用了抽象类,通过继承和多态来实现扩展的功能。

    第二次作业也是一题,是统计java程序中关键词的出现次数。这道题思路比较清晰,难度不大,但是需要注意的细节比较多,特别是两种注释的处理会有些麻烦,但是想清楚了也不难。这题考察了ArrayList和数组的用法,类的设计也比较简单。

    第三次作业仍然是一道题,是表达式求值,简单的四则混合运算,这道题相比前两次作业稍难一些。主要考察了堆栈和正则的使用,在类的设计方面也是比较简单。比较难的是有好多种输入情况要判断合法性,这就要用到正则表达式的运用,我在正则这方面还是有些欠缺。

    ②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

    我们把一系列描述对象的属性装在一起,然后放在一个类里面,这就是封装。继承是类与类之间的关系,子类可以继承父类的属性和方法,从而实现了代码的复用性。多态主要指引用多态和方法多态,父类引用可以指向本类对象也可以指向子类对象,子类可以重写父类的方法。这一个阶段的作业仍然是考察了封装、继承、多态、接口的应用,但更重要的是考察我们对类的设计能力。
    ③作业过程中遇到的问题及解决方法

    第一次作业:

    第一题中遇到的问题最多的就是输出的答案错误,尤其是速度和刻度是不匹配的,后来debug发现是算法有些问题。

    还有一个是在刻度类中减速那里有点问题,临界值设置错误导致输出的刻度错误,将临界值设置为5就正确了


    第二次作业:

      这题在处理输入java程序上遇到过问题,就是怎么把那些符号去掉从而方便统计关键字,最后直接把不需要的符号全部换成空格,再通过空格将程序划分为若干个字符串便于统计关键字出现次数。在处理两种注释方面也遇到问题,最后发现使用正则将这两种注释里的代码直接换成空格,这就很容易得解决了空格问题。最后还有一个测试点一直过不去,也实在找不出问题,问其他人也是找不出问题就两个人过了这个测试点得到满分。

    第三次作业:

    这题在正则表达式上出现错误,导致输出结果错误,将正则改好就行了。还有一个问题是在输出结果上保留两位小数错误,导致输出的结果也是错误,后来我先保留三位小数然后再保留两位小数就通过测试点了。
    ④每次作业花费的时间比例

    花费时间比例为:4:3:4
    ⑤对编程过程的严谨性的认识及教训

    编程过程中有许多低级错误,说明自己不够严谨,这也让我吃了很大苦头,一直在找bug,所以今后写代码一定要仔细,更加谨慎。出现算法错误,要多多使用debug。
    2.OO设计心得
    ①对面向对象三大技术特性之间关系的理解

    把一系列描述对象的属性装在一起,然后放在一个类里面,这就是封装。继承是类与类之间的关系,子类可以继承父类的属性和方法,从而实现了代码的复用性。多态主要指引用多态和方法多态,父类引用可以指向本类对象也可以指向子类对象,子类可以重写父类的方法,子类也可以扩展父类的功能但是不能改变父类原有的功能。接口所有方法都不能实现,一个类可以实现多个接口,接口可以继承接口。
    ②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

    单一职责原则:一个类、方法、接口只能有一个职责。

    “开-闭”原则:一个模块在扩展性上开放更改性上封闭,如果要加入其它功能,要在不修改原有功能代码的前提下,增加其它功能代码。
    ③OO编程思维的理解

    面向对象编程思维是以对象为中心,面向对象就是将对象的属性和方法封装起来,通过封装、继承、多态,实现一系列功能,同时使代码复用性更高。类具有属性和方法,是抽象的,而对象是类的实体,也具有类的属性和方法。通过对象来使用类的各种方法实现所需功能。
    ④类设计心得

    设计类要注重代码的复用性,注重单一职责原则和开闭原则,把对象的属性封装到一个类中,也要注重继承与多态及接口的使用,这几次作业老师都没提供类图,需要我们自己去设计类,这也锻炼我们学会怎么样设计高效的类图,在分析问题的时候要多注重观察各个对象的特点及联系。

    3.课程收获
    总结这个学期来在OO方面的教训及收获

    通过这个学期的学习,我收获颇多,我从刚开始什么都不知道的java小白,到现在能用java实现一些简单的课题任务。我学会了怎么分析问题设计类,掌握了最基本的正则表达式的书写,也逐渐熟悉封装、继承、多态、接口的应用,也越来越体会到使用继承、多态之后代码的复用性得到大大提高。但同时也暴露了我许多问题,有很多低级错误出现,比如少一个空格、圆的方程写错、复制粘贴过后忘记修改变量等等。所以在今后的学习中,我要仔细仔细再仔细,更加谨慎认真,这样的错误真的很难发现,有时候debug都不一定能找到,说起来都是泪水。

  • 相关阅读:
    小程序 生成二维码
    uni-app调用wifi接口
    微信小程序代码上传,审核发布小程序
    uni-app开发经验分享十五: uni-app 蓝牙打印功能
    面试题 16.11. 跳水板
    LeetCode 63. 不同路径 II
    LeetCode 44. 通配符匹配
    LeetCode 108. 将有序数组转换为二叉搜索树
    LeetCode 718. 最长重复子数组
    LeetCode 814. 二叉树剪枝
  • 原文地址:https://www.cnblogs.com/wddz111/p/13056579.html
Copyright © 2011-2022 走看看