面向对象程序设计_第二阶段总结

栏目: IT技术 · 发布时间: 4年前

内容简介:本次博客用于表述在学习面向对象知识的第二阶段中获得的知识总结,还有表述一些在编程过程中获得的心得。5-6次作业中要求使用正则表达对数据进行合法的校验。第五次作业要求在一串数字中提取关键数据,而第六次作业这是在多现实里面提取每一项并对每一项的数据进行识别分析提取。从易到难。本阶段学习中,图像类的构建贯穿整个阶段。

1.前言:

本次博客用于表述在学习面向对象知识的第二阶段中获得的知识总结,还有表述一些在编程过程中获得的心得。

2.作业过程总结:

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

  • 正则表达式

5-6次作业中要求使用正则表达对数据进行合法的校验。第五次作业要求在一串数字中提取关键数据,而第六次作业这是在多现实里面提取每一项并对每一项的数据进行识别分析提取。从易到难。

  • 类间关系应用(关联、聚合、依赖、继承)

本阶段学习中,图像类的构建贯穿整个阶段。

从最基础的一个4个图形类设计到后面类间关系应用

面向对象程序设计_第二阶段总结

  • 继承与多态

在进行图形类设计中,加入了继承与多态,提高了程序的健壮性

  • ArrayList类的应用

在对现有数据进行识别筛选提取时还需要分类,通过ArrayList类将数据进行分组,通过数组的方式进行储存

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

封装性:在处理数据的过程中,由于数据的多样性和相似性,不同的数据很可能在不同类之间含有不同的含义,利用封装性能完成对数据的控制,减少错误。

·  本阶段作业中,在定义圆的类时,构造方法中将参数的值赋给类内定义的radius时由于构造参数与类内radius类似,造成数据赋值失败,通过封装性能有效减免错误的发生。

this.radius = radius

继承性:父类和子类的使用减少了数据的重复性,同时通过继承的方式可以获取父类中的得到的数据

本阶段中并未要求我们从父类中提取数据,只有将父类中的方法提取出来使用。

多态性:指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时

会产生不同的行为(即方法)。同继承性相同可以减少数据的重复性,并且还增加了程序的灵活性,增加了程序额可扩展性。

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

  1. 线程出错(NullPointerException)

面向对象程序设计_第二阶段总结

原因:类设计中构造方法未写导致线程出错

总结:构造方法错误将导致线程出错

2.正则表达式判断出错

原因:计算机无法灵活分析目标

解决办法:使用(?= exp)解决

面向对象程序设计_第二阶段总结

面向对象程序设计_第二阶段总结

3.ArrayList使用问题

错误:Index n  out of bounds for length

面向对象程序设计_第二阶段总结

检查后发现原因:在调用add()方法时出错将导致ArrayList大小小于预计值,当index大于实际长度时将导致报错。

通过调试可以检测add()是否正常使用。

4.运行超时

解决方案:优化代码,减少不必要的检测。

④每次作业花费的时间比例

本阶段第一次作业:15h

本阶段第二次作业:  8h

本阶段第三次作业:3h

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

认识:编程过程需时刻保证严谨性,否则小错成大错

教训:莫名出错,找不到

2.OO设计心得


①对面向对象三大技术特性之间关系的理解

封装将数据变得可操作化

继承则提高数据复用性

多态则使不同数据有不同的处理

三者都是在提高数据效率。 ②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

  • 单一制作原则

功能细化,每个类行使其独特的功能。

每个类功能独立,当功能需要拓展时只需在某个类进行拓展,而当某个功能存在bug时则可通过该功能的作用来确定他的类。

  • "开-闭"原则

避免因为数据修改导致的错误。

③OO编程思维的理解

将构成问题分解成各个对象,建立对象是为了描述某个事物在步骤中的行为。


④类设计心得

每个类应该实行其独特的作用,通过设计多个类可以提高代码的可读性。

3.测试的理解与实践


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

测试有助于提高代码的质量。在测试过程中,通过输入不同情况的数据可以找到代码缺陷以及一些隐晦的错误,从而改进代码,提高代码的健壮性。


②查阅资料,假设使用Junit进行程序的测试是否可行

可行;

先思考测试再变成可有效减少错误 4.课程收获


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


5.对课程的建议
①第三阶段作业难度、题量的建议

1.提高难度,减少题目数,每题知识点丰富,充满联系

2.增加题目数量,细化分数,通过迭代的方法提升难度。


②课程内容讲解方面的建议

现在挺好


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

挑战编程

挑战编程

斯基纳 / 刘汝佳 / 2009-7 / 39.00元

《挑战编程:程序设计竞赛训练手册》分为14章,分别介绍在线评测系统的基本使用方法、数据结构、字符串、排序、算术与代数、组合数学、数论、回溯法、图遍历、图算法、动态规划、网格、几何,以及计算几何,并在附录中介绍了一些著名的程序设计竞赛以及相应的备赛建议与比赛技巧。每章的正文用十余页的篇幅覆盖了该领域最核心的概念和算法,然后给出八道可在线提交的完整编程挑战题目供读者练习。 全书内容紧凑、信息量大......一起来看看 《挑战编程》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具