学期学习的总结


0.前言

本次博客是对本学期最后一次作业以及对java的学习总结
1.作业过程总结

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

题目的难度依次增加,每次题目不再是单纯对几个知识点进行考察,而是对总体的一些考察,运用的知识量更多了,还有关于类的设计,如何封装的思考。

作业雨刷程序功能扩展设计主要考察了我们对类的设计,对接口,抽象类的理解和运用;

作业统计Java程序中关键词的出现次数 主要考察了我们对字符串的处理;

作业表达式求值主要是考察我们对类的设计,对字符串处理,计算,有使用了栈和链表等,综合度比较高,难度比之前大很多;

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

作业里面多次对这些思想的运用,使用的过程中对这些思想越来越熟练
③作业过程中遇到的问题及解决方法

第一次作业并没有遇到什么问题,因为老师首先给了我们简易版雨刷器的代码,我们只需稍作修改即可完成

第二次作业遇到困难,发现自己对字符串的一些方法使用不熟练,通过查阅资料,做笔记等解决此问题。

第三次作业首先对中缀表达式转化为后缀表达式不会,通过查阅资料和老师的ppt理解掌握,第二是对栈的应用不会,也是通过百度网站自我学习,然后就是对数据类型的处理,问了同学。
④每次作业花费的时间比例

由于这几次作业难度依次增加,所花的时间也依次增加,第一次12小时,第二次48小时,第三次96小时。比例为1:4:8
⑤对编程过程的严谨性的认识及教训

严谨性即健壮性 健壮性是指软件对于规范要求以外的输入情况的处理能力
所谓健壮的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。 另外健壮性有时也和容错性可移植性,正确性有交叉的地方。
比如,一个软件可以从错误的输入推断出正确合理的输入,这属于容错性量度标准,但是也可以认为这个软件是健壮的。 一个软件可以正确地运行在不同环境下,则认为软件可移植性高,也可以叫,软件在不同平台下是健壮的。 一个软件能够检测自己内部的设计或者编码错误,并得到正确的执行结果,这是软件的正确性标准,但是也可以说,软件有内部的保护机制,是模块级健壮的。 软件健壮性是一个比较模糊的概念,但是却是非常重要的软件外部量度标准。软件设计的健壮与否直接反应了分析设计和编码人员的水平。即所谓的高手写的程序不容易死。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。Java实现多态有三个必要条件:继承、重写、向上转型即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

我认为单一职责原则,就一个类而言,应该仅有一个引起它变化的原因

如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏.软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护,科扩展,可复用,灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而对于应用程序中的每个部分都刻意的抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。
③OO编程思维的理解

oo编程思想主要包括类和对象。我们通过对象去类去解决问题,其中又需要对类的分析,设计又至关重要,需分析共同特征和不同特征,每个类需要独立,且要符合单一职责。
④类设计心得

类的设计首先要从全局去考虑,要遵循封装,继承,多态.另一种说法是:抽象,继承,动态绑定

然后就是面向对象五大设计原则。


3.测试的理解与实践
①测试对于编码质量的重要性

测试能发现程序是否能对其应该具有的功能进行实现,可很快的看出,可以发现代码的一些不足和特殊情况是否可正常运行
②查阅资料,假设使用Junit进行程序的测试是否可行

可行
4.课程收获
初步理解了oo编程思想,会对这个思想在代码上的初步应用,学会了java的基本语法,基本类和对其性质的理解。
5.对课程的建议
①作业难度、题量的建议

个人认为此次难度适中,逐渐加大难度使我们更好的掌握了java基础,题目量也很好
②课程内容讲解方面的建议

个人认为老师很好,在上课过程中讲课也很负责,认真,每个知识点都会让我们理解,会让我们提问。

 

posted @   –WuJunJie–  阅读(195)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示