0.前言

此阶段总共进行三次大作业,其中第一次作业中的第一题,水文数据校验及处理中,遇到较大的难题,第一次接触正则表达式,编码过程中显得难度特别大。第二次作业同样也是对于一元多项式求导中对单项的正则校验遇到难题。第三次作业总体难度不大,值得高兴的是,求素数的加分题也写出来了。总而言之,这阶段的作业比上一阶段的难度要大,花的时间也多。
1.作业过程总结

第一次作业,主要涉及到继承与正则表达式的知识,第二次作业则为继承与多态,正则表达式,第三次作业以继承、多态性使用方法以及接口的应用为主。三次作业都涉及到图形继承,从简单的继承到继承与多态,再到接口。以上过程均在一道题里面实现,需求增加,用到的方法也相应增加。三次作业的知识点关联密切,由浅到深。

我理解的面向对象的封装性为隐藏对象的属性,对方法实现过程并不关注,对外仅提供接口,也就是说,我们只关注这个类的功能有哪些,并不关注这些功能是如何实现的。这点在作业过程中有明显的感受,比如在主方法中,我们只关注对象,对于对象的一些属性不去关注,就好比一只兔子,它有四条腿,能吃萝卜等,兔子就是我们封装的类。继承性,就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。这点在图形继承里面体现的淋漓尽致,子类圆 、三角形等继承父类图形(Shape),可以继承方法,属性。子类中也能自定父类中没有的方法。而多态性呢,它可分为静态多态性和动态多态性,也就是编译时的多态性和运行时的多态性。通俗点为,向不同对象发送相同指令,不同的对象在接收后会产生不同的行为。它增加了程序的灵活性,和可拓展性。

在作业过程中也遇到了不少问题,比如第一次作业的水文数据校验,其中最难的是,正则表达式验证。第一次作业虽然做出来了,但是还是有一个测试点没通过。

pta测试时,显示每一列均有错误没有通过,而自己设定每一列均有错误的数据,输出结果为正确,这就纳闷了。把后面题做完之后,开始攻克这个测试点,尝试了大概数十组数据,最后也没发现什么错误,最后我选择放弃了。第二次作业呢,同样也还是正则验证没有完全通过,这次作业出现这种情况,和我对时间的把控有关,在离作业结束还有两天才开始进行做题,到最后没有时间进行调试,导致这次作业只获得88分,为了避免这种情况发生,我以后会在作业发布的第一时间先查看题目要求,难度,这样能更好地完成作业。第三次作业可以说是,一次送分作业,还增加一道加分题,对于我这种前面得分不高的同学来说,无疑是一次补过的机会,当然我肯定没有放过这次机会。

这阶段的三次作业花的时间比例大概为5 : 4 : 2,可见难度大的,花的时间也是要多。

编程是一个需要注意力集中,思维敏捷的过程,如在调试过程中出现错误,明显错误还好容易解决,尤其是那种难发现的错误,找个半天也没点影子,这是最令人头疼的。其实这些错误都是可以避免的,只要在编码过程中做到思维严密,可以避免90%的错误。还有就是找个安静的地方开启你的编码世界。

2.OO设计心得

对于面向对象三大技术特性之间关系的理解,首先三大技术特性分别为封装性、继承性和多态性,上面描述了我对这三个特性单独的理解,接下来我浅谈它们之间的关系,封装有set 方法来设置成员变量,用 get 方法来访问成员变量。把对象的成员变量隐藏在里面,不显示细节。保证数据的安全性。封装的好处在于,把一个功能装到一个方法中去,外界不必关注内部的细节。继承是类与类之间的关系,子类可以继承父类的方法,如果子类中调用的某个方法,会优先在子类中查找是否存在此方法,找不到的情况下,才到父类当中查找。子类重写父类中的方法,会覆盖父类的方法,优先使用子类方法。对于多态,我理解是在继承的条件下,才能有多态,多态指的是父类指针指向子类对象。

单一职责原则及“开-闭”原则理解,单一职责为一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。在设计过程中一定要遵循单一职责,尽管这样类的个数会增加,但是复用性强。开闭原则为面向对象的可复用设计的第一块基石,是面向对象设计的目标。目前对于开闭原则了解不多,还是等后面了解透彻再来。

OO编程思维主要表现为面向对象的三大特性,五大原则。充分理解这写特性,原则,能更好的帮助我们理解OO编程。所谓面向对象,它基于万物皆对象这个哲学观点,将我们的程序模块化,对象化;把具体事物的特性属性,和具体方法作为一个类。

对于类设计来说,我觉得,设计一个类,主要从属性和方法进行,可将同一属性的事物归为一个类,或者将功能相同的事物放到一起作为一个类。

3.测试的理解与实践

一个合格的产品,当然需要经过不断的测试,有性能测试,压力测试等,对于编码质量也是同样道理,测试可以检测质量好坏,一个禁得起测试的程序,才是合格的。

使用Junit进行程序的测试可行,Junit要求在编写代码之前先写测试,这样能更好的限制程序的功能,编写也相对比较集中。
4.课程收获

在阶段的收获可以说的是很丰富的,理解了三大特性,了解了正则表达式的设计,进一步理解了OO的思想。同时也发现了自己的不足,编码不够认真,思维不够严密,导致测试通不过。

5.对课程的建议

我认为每次作业可以设计三道题目,高、中、低难度各一道,也可以适当的增加加分题。

课程方面的话,老师可以介绍一些java方法实现的实例;老师可以课前把上课要讲的代码发到群里面,我们跟着进行操作,总看着老师一个人在操作,总感觉容易走神。

面向对象(OO)第二阶段学习总结的更多相关文章

  1. 面向对象OO第5-7次作业总结

    面向对象OO第5-7次作业总结 学习OO七周了,深切的感受到了这门课程的不友好.前三次作业能够算是勉强地通过了,但是从第五次作业开始就完全GG了.这三次作业,从多线程电梯开始,然后文件监控,然后到出租 ...

  2. 面向对象OO第1-3次作业总结

    面向对象OO第1-3次作业总结 学习OO已经四周了,对OO以及JAVA的编程也算终于了解了一丢丢.现在做完了三次的编程作业,对前三次的作业做一次总结. 第一次作业 ------------------ ...

  3. PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)

    PHP面向对象三大特点学习 学习目标:充分理解抽象.封装.继承.多态   面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和 ...

  4. 面向对象OO第15次作业总结

    面向对象OO第15次作业总结 1.论述测试与正确性论证的效果差异,比较其优缺点测试通过大量测试数据来覆盖测试代码,比较直观,优点在于知道测的是啥,特别直观,缺点在于很难覆盖所有情况.正确性论证从逻辑关 ...

  5. 面向对象OO第9-11次作业总结

    面向对象OO第9-11次作业总结 1.关于规格化设计的调研程序规格说明:对程序所应满足的要求,以可验证的方式作出完全.精确陈述的文件.“规格说明”一词与其他工业产品的“规格说明书”有相似的含义.不过, ...

  6. 面向对象(OO)第一阶段学习总结

    前言:对OO本阶段作业情况说明 本阶段一共完成三次作业,第一次主要是在主方法里面进行编程,也就是和之前C差不多,而随着学习的深入,慢慢了解到面向对象与面向过程的区别.作业的难度也在慢慢增大,后两次都用 ...

  7. PHP学习 Object Oriented 面向对象 OO

    定义类class class_name [extends partclass_name]{public private protected var property_name = value;publ ...

  8. Python全栈开发记录_第九篇(面向对象(类)的学习)

    有点时间没更新博客了,今天就开始学习类了,今天主要是面向对象(类),我们知道面向对象的三大特性,那就是封装,继承和多态.内容参考该博客https://www.cnblogs.com/wupeiqi/p ...

  9. 暑期java(面向对象设计)学习第一阶段总结

    0.前言 本次博客针对的是暑假学习java(面向对象设计)的前三次作业的小结,第一次作业:7-1 对三个整数排序 7-2 对四个整数排序 7-3 对十个整数进行排序 7-4 对多个整数进行排序 第二次 ...

随机推荐

  1. 从 Linux 操作系统谈谈 IO 模型(终)

    Linux 为什么要区分内核空间与用户空间? Linux 操作系统的 IO 模型有哪几种?有啥区别? 常说的阻塞现象,到底是咋回事? 网络编程研发时,那块到底耗时最多,代码是否还有优化空间? 前几期的 ...

  2. 使用原生方法查询指定元素是否包含指定className

    如果我们要查找某个指定元素是否包含指定的className,可以使用以下方法 eg:document.getElementById('Id').classList.contains('要查询的clas ...

  3. docker中使用mysql数据库详解(在局域网访问)

    开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在 ...

  4. 以数字资产模型为核心驱动的一站式IoT数据分析实践

    [摘要] 一个不会直播的云服务架构师,不是一个好的攻城狮! 在这个全民直播的时代 一个不会直播的云服务架构师 不是一个好的攻城狮 3月23日15:00-15:50,华为云IoT物联网数据分析服务架构师 ...

  5. 微信号网页版api

    Django Wechat Api djangowechatapi是基于wxpy和django制作的web应用 安装 使用pip pip install djangowechatapi 源码安装 gi ...

  6. Django-rest-framework 是个什么鬼?

    作者:HelloGitHub-追梦人物 我们首先来回顾一下传统的基于模板引擎的 django 开发工作流: 绑定 URL 和视图函数.当用户访问某个 URL 时,调用绑定的视图函数进行处理. 编写视图 ...

  7. 使用基于vuecli创建的目录推送到指定远程分支

    笔者使用vuecli创建项目目录以后,在想将该目录提交到远程仓库时发现行不通,在忙活了一下午以后写下此文 1.github上新建一空分支,然后克隆该分支地址:  https://github.com/ ...

  8. AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机

    AJ分享,必须精品 一:效果 二:代码 相机部分就简单多了,几行代码调用而已,但是如果你要是想实现更多丰富的功能,需要自己写.利用AssetsLibrary.framework,利用这个框架可以获得手 ...

  9. 2019-07-28【机器学习】无监督学习之聚类 DBSCAN方法及其应用 (在线大学生上网时间分析)

    样本: import numpy as np import sklearn.cluster as skc from sklearn import metrics import matplotlib.p ...

  10. 如何使用python,才能像人民日报的“点亮”武汉景点

    如何使用python,才能像人民日报的“点亮”武汉景点 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Allen P ...