第三次blog作业
前言:
1.blog作业贯穿了整个学期,通过每次的blog来回顾和巩固这一两个星期所学习的新知识,每一次都能有新的收获和体会,不仅锻炼了文字表达能力,还促使我们深入思考知识点之间的联系。pta的作业量也是比较大的,每次都得完成好几天才能完成,难度呈阶梯式上升,从最开始的基础到后面慢慢的迭代更新,题目的难度也在上升,完成的时间也在上升,这个过程虽然痛苦,但是通过完成一道道的题目,也能更加深刻地体会算法的魅力和计算机逻辑语言的神奇之处。
2.实验则是通过电器装动物这一基础衍生出了对于不同知识点的扩展和运用,总共五次实验,每次实验都围绕一个具体的主题,将理论知识转化为实际项目成果。第一次实验搭建电器管理系统的基础框架,从创建电器类封装属性,到设计测试类实现简单功能,初步感受理论落地的过程。在第三次实验中,运用 JavaFX 设计电器展示界面,为了实现美观的布局效果,我不断调整 AnchorPane、VBox 等容器的参数,尝试不同的 CSS 样式。虽然过程中遇到组件显示错位、样式不生效等问题,但通过查阅官方文档、在技术论坛提问,最终呈现出简洁直观的界面。这些实验让我明白,理论知识只有经过实践打磨,才能真正转化为解决实际问题的能力。
3.线上课程凭借丰富的慕课视频、电子教材和在线测试题,成为随时可开启的知识宝库。每当预习新章节时,我会先观看视频,记录关键知识点,再通过在线测试检验学习效果,及时查漏补缺。线下课堂上,老师生动的讲解和巧妙的案例引入,让抽象的概念变得通俗易懂。线下课程中,老师的面讲解和扩展,让知识的理解更加透彻。整体而言,课程的工作量对我来说还是比较大的,但是通过合理安排时间能够完成学习任务,难度虽然具有一定挑战性,但在不断的学习和实践中,逐步提升了我的编程能力和对这个专业更加深刻的认识。课程难度虽高,但每一次突破瓶颈,都让编程能力实现质的飞跃,也让我对计算机专业的认知从表面逐步深入内核。对面
面向对象技术总结:
1.封装:将类的属性私有化,通过公共方法(getter/setter)暴露访问接口,实现 “信息隐藏”。避免外部直接操作属性导致数据混乱(如非法值写入),同时便于统一维护属性校验逻辑(如参数范围检查),提升代码安全性与可维护性。
2.继承:子类继承父类的属性与方法,复用公共代码,并通过重写扩展特有功能,形成 “is-a” 的类型关系。减少代码冗余(无需重复定义父类已有逻辑),建立清晰的类层级结构,便于新增子类时快速复用基础功能,提升开发效率。
3.多态:同一方法调用根据对象实际类型执行不同逻辑,通过 “父类引用指向子类对象”+“方法重写” 实现。调用端无需关心对象具体类型,直接通过统一接口操作不同实现(如 “显示” 方法可适配电视 / 电脑等不同设备),大幅增强程序扩展性,避免冗余的类型判断逻辑。
4.抽象:包含抽象方法(未实现的方法,需由子类实现)的类,通过abstract关键字修饰,不能直接实例化,必须被继承。用于定义具有共同特征的类的抽象模板,强制子类遵循统一结构,同时保留部分实现细节。类似于某种产品所必须要有的规格模板。
5.接口:由一组抽象方法和常量组成的 “契约”,通过interface关键字声明,类可通过implements实现多个接口。接口中的方法默认是public abstract,属性默认是public static final。接口是用来实现扩展,其扩展性很强。
6.集合框架:是一套用于存储和操作数据的标准化接口与实现类,核心分为Collection(存储单一元素)和Map(存储键值对)两大体系,通过接口与实现分离的设计实现灵活扩展。集合框架在处理数据时展现出强大优势。处理学生考试成绩时,使用 ArrayList 存储成绩列表,方便进行成绩的添加、删除和查询操作;利用 HashSet 存储班级学生名单,自动去除重复姓名,确保数据唯一性。在开发小型词典程序时,HashMap 以单词为键、释义为值的存储方式,实现快速的单词查询功能。通过大量练习,我能够根据业务场景特点,准确选择合适的集合类型,优化程序性能。用于定义不相关类的共同行为规范,实现 “多继承” 效果(Java 类单继承,但可实现多个接口)。
7.异常处理:异常处理是 Java 编程中用于应对程序运行时错误的一套机制,通过结构化的方式捕获、处理或传递异常,确保程序在出现意外情况时仍能保持健壮性。异常处理机制的学习,让我能够更好地处理程序运行过程中出现的错误,通过捕获异常、抛出异常等操作,提高程序的健壮性。让异常发生时系统依然能够稳定的运行不至于崩溃
8.JAVAFX:JavaFX 是 Java 平台的图形界面(GUI)框架,用于构建跨平台的富客户端应用程序。自 Java 8 起成为标准库的一部分,支持窗口、控件、动画、媒体播放等功能,替代了 AWT 和 Swing 的传统 GUI 方案。然而,在 JavaFX 的学习与应用中,我还是有很多的问题。我自己虽然能够完成简单的界面布局和组件添加,实现基本的用户交互功能,但在复杂界面设计,如动态图表展示、动画过渡效果实现等方面,还存在明显不足。对 JavaFX 的 FXML 布局文件、CSS 样式表的深度应用以及事件驱动模型的理解还不够透彻,对于javaFX还是有很多的东西要去学习和掌握。
不足点:自己对于代码逻辑的理解和运用方面还有很多的算法不会,将实际问题转化为计算机逻辑还有很大的困难,刷的算法题目少,自己的基础知识也不够牢固,还需要去加强和巩固。同时,采用 “边写边测试” 的方式,每完成一个小功能,就进行单元测试,及时发现并修正问题,这样不仅可以提高开发效率,还能保证代码的质量。然而,即便我意识到了这些问题,在学习过程中,我仍然存在学习效率不高的情况。写代码的时间还是很长思考的时间很长。
采坑心得:
在 Java 课程的学习过程中,我走过了许多弯路,踩过无数的 “坑”,但这些经历也成为了我宝贵的学习财富,让我不断成长和进步。
1.初期对面向对象的概念理解不深刻,在编写代码时经常出现类设计不合理的情况,导致代码冗余,修改和扩展起来很麻烦,几乎到了要重写的地步。PTA 作业中,因审题不仔细和边界条件考虑不足,踩过不少 “坑”。在计算银行利息的题目里,忽略复利计算条件,按照单利逻辑编写代码,导致多次提交失败。处理字符串输入时,未考虑输入为空的情况,引发空指针异常。这些教训让我养成严谨的审题习惯,完成代码后会针对边界值、特殊情况进行全面测试,避免因小失大。这让我明白在编程过程中,认真审题、严谨思考的重要性。
2.在实验环节,环境配置问题也耗费了不少时间。不同版本的 Java 开发工具和依赖库之间可能存在兼容性问题,导致项目无法正常运行。同时,我也意识到在开始实验之前,一定要确保开发环境的正确配置,避免在环境问题上浪费过多时间。
3.还有则是对于代码的最初设计和构造,一定要花时间去构造框架和思路,理清楚思路后就开始动手,不要只光想,因为有的题目逻辑和复杂度高,人的脑子是记不住那么多复杂的东西,因此边写边构造,不断完善代码是一个不错的提升写代码的效率和速度的一个办法,但是也要先经过前期的思考和审题,不然只会在错误的道路上越走越远。
4.此外,我的学习缺乏系统性规划,往往只是跟着课程进度被动学习,没有主动去拓展相关知识,导致知识体系不够完整,在遇到综合性问题时,常常感到无从下手。
改进建议及总结:
这门课程整体上非常系统且实用,老师的教学认真负责,课程内容的安排也是较为合理的。
1.pta上的测试样例和测试点可以多一些,一来是为了方便理解题意避免在一个地方上考虑和卡住太久,二来是也可以通过更多的测试点来发散我们的思维,不仅仅局限于当前的那几个测试点,因为第一次的电梯大作业对于电梯的运行逻辑题目中只给了大概的运行逻辑,其中更加复杂的情况和一些边界可能情况却没有给出,导致一直答案出错却找不出问题所在,卡了我好久好久。
2.老师上课通过简单的样例让我们自己来敲代码也是一个很好的办法来增加我们对于课堂知识点的加深和巩固,虽然不能每次都完成老师要求的那个样子来实现代码的运行结果,但是每次运行不报错在控制板上出现了自己想要的结果时,内心还是十分有成就感的。这一点可以继续保持推荐。
3.加强作业和实验的反馈机制:在作业和实验提交后,教师可以提供更详细的反馈意见。除了指出错误和问题外,还可以对代码的优点和不足之处进行分析,提供改进的建议和思路。及时、有效的反馈可以帮助我们更好地理解知识点,提高编程能力。
通过这门 Java 课程的学习,我收获颇丰。在未来的学习和工作中,我将以此次学习为起点,继续深入学习 Java 技术,不断提升自己的编程水平。同时,我也衷心希望这门课程在不断改进和完善后,能够帮助更多的同学扎实掌握 Java 编程技能,为他们未来的职业发展和技术探索奠定坚实的基础。

浙公网安备 33010602011771号