学期编程总结
写在前面
经过一年的Java学习,我体会到了Java语言的神奇之处,也感悟到修行机器语言的诸多难题,为此我这个学期花了不少功夫去解决语言上的问题,有一些困境我已经能很轻易地跳出,但仍有困境使我避之不及,这也让我明白语言修行的不易,这并非是浑然天成的功力,而是言传身教的历练,纸上谈兵终是无法推进一步,唯有勤学苦练,坚持不懈,才能在之后明白语言的绝妙之处,以及几个世纪巨人的伟岸,如今的我们只不过在巨人的肩膀上看风景而已,希望以后,我们也能成为自己的巨人。
前言
Blog 作业作为课程知识的拓展与总结环节,要求我们将学习过程中的思考、实践经验以及对特定知识点的深入探究以文字形式呈现。每次 Blog 作业都需要围绕特定主题,如面向对象设计模式、Java 集合框架的深入分析等展开。Blog所为,正是要我们在面对对象编码的过程中,检视自己,明确自己的失误,从而能更好地编写程序,为未来独自完成项目打好基础。
PTA 作业是对课堂知识点的即时巩固与实践检验。涵盖了从基础语法如变量、循环、条件判断,到面向对象核心内容如类与对象、继承多态等。度呈现阶梯式上升,初期基础语法题目较为简单,主要是熟悉 Java 代码的基本编写规范与逻辑;随着课程推进,面向对象相关题目难度增大,需要准确运用封装、继承、多态等思想解决实际问题,比如设计复杂的类继承体系并实现多态行为。但是困境当头也意味着进步,将所用知识在实践中迸发也是一桩美事。
实验课程是理论知识转化为实践能力的关键环节。从基础的冰箱关入动物,到利用Javafx构造一个图形界面进行操作,每个实验都有明确的功能需求与技术要点。度方面,前期实验主要是熟悉开发环境与基本语法应用,相对容易;后期涉及 JavaFX 界面设计与功能实现的实验,既要掌握界面布局、控件使用等前端相关知识,又要结合后端的业务逻辑处理,如数据的增删改查与界面的交互联动,对知识的综合运用能力要求很高,是课程学习中锻炼实践技能的重要环节。虽然工作量极其大,但是也是十分重要的锻炼环节。
线下课程是知识传授的主阵地,教师系统讲解 Java 核心知识与关键概念,从面向对象的思想起源到具体技术实现,如类的设计、继承多态的代码演示等,每节课信息量较大,需要高度集中注意力理解与吸收。线上课堂虽然时长非常长,但是也只能作为一种补充,因为网课不能和线下一样及时向老师提出问题,所以一旦遇到困难,必须线下找老师解明。整体而言,线下课程注重知识的系统性传授与实时互动答疑,线上课程强调自主学习与知识巩固,二者相辅相成,共同构建起 Java 知识学习的完整体系,难度上线下课程的实时理解吸收有一定挑战,线上课程的自主学习则考验自律性与知识梳理能力。
面向对象技术总结
封装
11在课程学习中,封装是接触到的面向对象编程的首要核心概念。通过 PTA 作业中设计各类实体类,如Customer 、Order 类等,深刻理解了封装的意义。封装就是将对象的属性和行为隐藏在类的内部,仅对外提供有限的、规范的访问接口。例如在 Customer 类中,将 id、name、password 等属性定义为 private,然后提供 public 的 getter 和 setter 方法。这样做的好处在于,一方面可以保护类的内部数据,防止外部直接访问和修改导致数据混乱,比如 password 属性,只有通过特定的 setter 方法才能修改,可在方法中添加密码强度校验等逻辑;另一方面,简化了外部对类的使用,调用者无需关心类内部复杂的实现细节,只需通过统一的接口操作对象。在掌握程度上,已经能够熟练运用封装思想设计简单的类结构,合理规划属性的访问权限与对外接口。但在一些复杂业务场景下,如涉及多个关联类的大型项目中,对封装的粒度把控还不够精准,有时会出现过度封装导致代码调用繁琐,或封装不足无法有效保护数据的情况,后续需要在实际项目中进一步打磨。
继承
多态
多态是面向对象编程中实现动态行为的关键。在课程中,通过方法重写(Override)和接口实现等方式体验多态。比如在 Order 相关的类中,不同的 PaymentType 对应不同的支付行为处理,或者不同的 CargoType 货物类型在计算费用时有不同的实现,这可以通过多态来优雅处理。定义一个父类或接口(如 PaymentBehavior 接口),然后不同的支付方式类(如 WechatPayment、AlipayPayment 类)实现该接口的 pay 方法,在实际调用时,根据运行时的对象类型动态调用对应的 pay 方法。多态让程序具有更好的扩展性和灵活性,能够应对需求的变化。但在实际运用中,对于多态的动态绑定机制理解还不够深入,在一些复杂的多态场景,如涉及泛型与多态结合时,容易出现类型转换错误和逻辑混乱,需要更多的实践与深入学习来突破。
抽象类
接口
集合框架
异常
JavaFX
JavaFX 是课程中用于开发图形用户界面(GUI)的重要技术。从简单的界面布局(如 HBox、VBox、GridPane 等布局容器的使用),到控件的创建与事件绑定(如 Button 的点击事件、TextField 的文本输入事件等),再到复杂的界面与数据绑定(如 TableView 与 ObservableList 的绑定,实现数据的可视化展示与交互),都进行了实践。在订单管理系统的实验中,成功搭建了登录界面、订单列表界面、订单详情界面等,实现了用户与系统的图形化交互。
踩坑心得
在课程学习初期,对 Java 基础语法的理解不够深入,尤其是在变量作用域、循环嵌套、条件判断的复杂逻辑处理上。比如在编写一个多层循环嵌套的 PTA 作业题目时,由于没有清晰梳理变量的作用范围,导致循环内部变量的值异常,程序逻辑混乱;还有在搞定输入系统和输出格式的时候,由于经验不足,弄出好多非零返回和格式错误,这使得我当时一直像热锅上的蚂蚁一样,改动无效而且截止时间又迫在眉睫,第一次进行大作业修改与拓展的时候,我就感受到了编写代码的不易以及我自己在编写代码的不足之处,逻辑过于混乱,注释几乎没有,甚至读不清自己写过的代码,使得我十分焦虑。在第一次使用Java实验的时候,我也犯了难,因为根本不知道如何在电脑上配置Java,这时,拥有了半年笔记本电脑的我,就像一个小白,摸不清门路,而现在我已经能够快捷更换jdk了,我只能说网络的力量确实强大,前辈的经验确实丰厚,所以在使用Java之前还是尽量了解一下手上的工具。同样的javafx也是一个十分难缠的对手,因为Javafx的内容非常多,就像在开学初做课设一样,要学的东西也是非常多的,所以在编码之前,一定要花一些功夫去了解部分Javafx的相关知识。
改进建议
经历一个学期的Java学习我已经知道Java这门语言的神奇之处,更是了解到了许多相关的编程技巧,通过理论学习、作业实践、实验操作,逐步掌握了 Java 编程的基本技能与面向对象编程的核心思想。在这个过程中,不仅学会了编写代码实现功能,更重要的是培养了面向对象的思维方式,学会从现实问题中抽象出类与对象,运用封装、继承、多态等思想设计解决方案,同时也锻炼了问题排查、调试代码的实践能力。但是,对于Javafx板块,我有点认为这个太过于仓促了,几乎是没有任何铺垫地就端上来成为了一道主菜,我地建议是在学习Javafx之前在课堂上可以先做个预告,结合本节课所讲,建立与Javafx的联系最好。

浙公网安备 33010602011771号