第一作业周期(前四周)总结
1.作业过程总结:
①总结三次作业之间的知识迭代关系:
第一次作业主要是让我们熟悉java的基本语法,第二次作业主要是让我们熟悉java函数怎么怎么写,类,属性间的关系,巩固了基本语法,为第三次作业做铺垫。第三次作业主要是让我们以第二次作业为基础,设计类,明白类设计以及单一原则的重要 性,初步思考类应该怎么设计,代码重用性该如何实现。
②如何通过作业逐步从面向过程过渡到面向对象:
第一次作业完全用的是c语言这种类面向过程的思想,把许多东西写在main函数里面,通过一些函数去实现一些简单功能。第二次作业依旧没有把面向对象放在心上,基本上依旧按照c语言对程序的设计思路去设计程序。当第三次作业来时,我发现我第二次代码的重用性很低,这和我没用应用面向对象思维有很大关系,从来没有想过去设计类,觉得麻烦,这次作业让我意识到面向对象要去设计对象的属性和方法,考虑题目中各种出现元素间的关系,去设计类。
③作业过程中遇到的问题及解决方法:
第一次作业是简单if else语句的应用,第一题计算税率有一个测试点没通过,当时想过是不是一些特殊值的问题,改进后解决.
第二次作业第二题判断是星期几,求输入日期到001-01-01的天数,该开始计算输入日期时总是少算一天,发现是吧01-01漏了,加上后解决。第三题计算下一天,没考虑12.31这一天的下一天是下一年,加上判断if(day==31&&month==12)判断这一特殊情况去计算下一天,第四题求前N天没考虑1-1号的特殊,if(day==1&&month==1)判断这一特殊情况去计算且程序只适用于了N取值不大时,程序不完善。
第三次作业发现第二题题目类似,用上第二次代码时发现完全行不通,第二次作业设计的程序不完善,对N取稍微大一点的值就不适用,基本重新改过代码。初次设计了简单的类。程序在下N天,前N天N取整型最大值时不能通过测试点,后面将数据转换为long后在强制转化为int后通过测试点。
④每次作业花费的时间比例:
第一次作业花费时间3.5小时;第二次作业花费时间6小时,第三次作业花费时间24小时
比例为7:12: 48
⑤对编程过程的严谨性的认识及教训:
在解决问题时,首先不是一来就直接打代码,而是需要一个大概的构思,在将细节一一细化,程序的细节要考虑清楚边界值,特殊值等特殊条件,因为如果不这样,程序无法满足需求且问题得不到解决。
2.OO设计心得:
①面向过程与面向对象的比较:
面向过程主要是分析问题,找出逻辑,通过代码一步一步的去实现程序。面向对象则需要通过对象去解决问题,去思考其属性和方法,且类之间影响不大,代码可重用性高。
②面向对象设计的基本原则理解:
了解了单一职责这一原则,将题目中所给东西细分,尽量把有不同功能的东西独立出来为一个类。
③OO编程思维的理解:
oo编程思想主要包括类和对象。我们通过对象去类去解决问题,其中又需要对类的分析,设计又至关重要,需分析共同特征和不同特征,每个类需要独立,且要符合单一职责。
3.测试的理解与实践:
①测试对于编码质量的重要性:
第一测试能发现程序是否能对其应该具有的功能进行实现,可很快的看出。
第二测试可以发现代码的一些不足和特殊情况是否可正常运行
②假如让你设计测试用例,你会如何做:
一:先了解程序的需求,像设计类一样,先大概分析在仔细分析
二:测试非法输入时程序是否崩溃
三:多测试几次正常的值,再给特殊值时看答案是否正确
4.课程收获:
1.初步了解面向对象大致内容,掌握了Java的一些基本语法;
2.初步了解了类怎么写和他的具有的属性和方法,属性最好要私密,方法要公开;方可以重载但是传参要不一样;且对于类的设计,需要进行严密的分析丶设计。
3.掌握了Java里自带的一些类,如Msth类,String类;初步了解Array类;
4.初步学会了如何进行程序的测试,设置测试点;
5.初步了解正则表达式,自己初步应用了一点点;
5.对课程的建议:
1:在类的设计时,希望老师有时候可以通过实际例子,并一步一步的设计给我们学习一次,这样我们会更懂得如何去设计,如何去遵守单一职责。
2:pta稍难题目可以在作业截止给我们分享一下思路,这样我们可以再去改进
6.后一阶段学习计划:
- 设计程序时多考虑单一职责
- 初步思考对类的设计问题
- 按时完成课程要求
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构