第三次Blog作业

一、学期学习概述
作为软件专业大一学生,这学期我系统学习了 Java 编程核心知识,完成了从基础语法到面向对象编程的认知跨越,并通过电梯调度系统、航空货运管理系统等项目实践,将理论知识转化为实际开发能力。整个学期的学习可划分为三个阶段:Java 基础语法攻坚期、面向对象思想形成期、项目迭代实践提升期,每个阶段都伴随着知识的积累与能力的突破。
二、核心知识体系构建
(一)Java 基础语法与核心类库
基础编程要素
掌握数据类型(如int、double、char)、运算符优先级、流程控制(if-else、for/while循环)及数组操作,完成从控制台输入输出到简单算法实现的基础训练。印象最深的是通过斐波那契数列、冒泡排序等经典案例,理解了算法逻辑与代码实现的映射关系。
面向对象核心概念
深入理解类与对象的关系,掌握封装(如private修饰符与getter/setter方法)、继承(extends关键字与子类构造函数调用)、多态(方法重写与instanceof类型判断)三大特性。例如,在航空货运项目中,通过Customer抽象类与IndividualCustomer子类的设计,直观体会到 "is-a" 继承关系的实际应用。
核心类库应用
学习Java.util包中的常用类,如ArrayList(动态数组)、HashMap(键值对存储)、Queue(队列接口),并在电梯系统中使用LinkedList实现请求队列管理,理解集合框架对数据结构操作的简化作用。
(二)软件开发核心能力
异常处理机制
掌握try-catch-finally结构与自定义异常类,在航空货运项目中实现超载异常处理(FlightOverloadException),提升程序健壮性。但也意识到异常处理的不足,如未覆盖输入格式错误等场景。
IO 流与文件操作
学习字节流(FileInputStream/OutputStream)与字符流(BufferedReader/Writer)的使用,在电梯系统迭代中尝试将运行日志写入文件,虽功能简单但建立了数据持久化的初步认知。
设计模式入门
通过电梯系统的三次迭代,逐步理解单一职责原则(将电梯状态管理与请求处理拆分为不同类);在航空货运项目中应用策略模式(FeeStrategy接口处理不同货物计费),认识到设计模式对代码可维护性的提升作用。
三、典型项目实践与能力提升
(一)电梯调度系统:面向对象编程的启蒙实践
项目迭代过程
首次迭代:实现电梯基础运行逻辑,包括楼层移动、请求队列管理,使用if-else处理方向切换,初步理解状态机设计思路。
二次迭代:运用单一职责原则,将Elevator类拆分为ElevatorState(状态管理)、RequestHandler(请求处理),代码结构从 200 行优化至更清晰的模块划分。
三次迭代:增加乘客类交互逻辑,通过Passenger类记录起止楼层,处理多人同时请求场景,体会对象间协作的设计方法。
关键收获
掌握队列数据结构在请求管理中的应用,理解先来先服务(FCFS)与方向优先调度算法的差异。
认识到代码迭代的重要性,首次版本中Main类承担过多逻辑(如输入处理 + 电梯控制),后续通过模块化拆分提升可维护性。
(二)航空货运管理系统:复杂业务的面向对象实现
核心技术应用
继承体系:设计Customer抽象基类(含编号、姓名)与IndividualCustomer/EnterpriseCustomer子类(增加身份证 / 营业执照号),Goods基类与NormalGoods/UrgentGoods子类(处理加急货物加价逻辑)。
多态实践:通过instanceof判断货物类型,在运费计算中实现差异化策略,如加急货物自动增加 20% 费用。
业务抽象:将航空货运中的体积重量计算(长×宽×高/6000)抽象为getEffectiveWeight()方法,理解行业规则到代码的转化过程。
能力突破
学会处理复杂业务规则,如航班载重监控(Flight.canCarry()方法)与超载异常终止流程。
掌握策略模式的基本应用,通过FeeStrategy接口避免多重if-else嵌套,代码可扩展性显著提升。
四、学习方法与认知升级
(一)高效学习策略形成
理论与实践结合
采用 "知识点学习→小案例练习→项目应用" 的三层递进法,如学习继承后先编写动物类层次小案例,再应用到航空货运的客户分类中,知识留存率提升约 30%。
代码复盘与优化
建立 "编写→调试→复盘" 的习惯,如电梯系统中发现Rate类计费逻辑的重复赋值问题后,总结出 " 条件判断优先使用if-else if" 的编码规范。
技术文档阅读
通过阅读 Java 官方文档(如Queue接口说明)与设计模式书籍,补充课堂知识盲区,在航空货运中主动查阅策略模式实现案例,加速设计方案落地。
(二)编程思维与工程意识培养
系统化分析能力
面对航空货运的多模块协同(客户→货物→航班→订单),学会使用类图(UML)梳理关系,将复杂问题拆解为可执行的子任务,如先实现Goods基类再扩展子类。
质量意识提升
从初期只关注功能实现,到后期重视代码规范(如航空货运中增加输入校验)、注释(关键方法添加 Javadoc)和异常处理,认识到 "可维护的代码才是好代码"。
迭代开发思维
电梯系统的三次迭代让我理解软件开发是渐进过程,初期无需追求完美设计,而应通过快速迭代逐步优化,如首次版本先实现核心调度逻辑,后续再补充动画效果等非核心功能。
五、反思
(一)存在的不足
技术深度不足
对 Java 高级特性(如泛型、反射、多线程)仅停留在概念认知,未在项目中应用。
数据库与网络编程知识欠缺,航空货运项目仍使用内存存储数据,未实现持久化。
工程实践能力薄弱
缺乏版本控制经验(如 Git),项目迭代中靠手动复制文件保存历史版本。
单元测试意识不足,仅通过控制台输入测试功能,未使用 JUnit 等框架进行自动化测试。
设计模式应用局限
策略模式在航空货运中的应用仍较基础,未实现运行时动态切换策略(如通过配置文件选择计费方式),对工厂模式、观察者模式等仍需深入学习。
这学期的 Java 学习是一场从 "代码小白" 到 "初级开发者" 的蜕变之旅。电梯系统与航空货运项目如同两块基石,奠定了我面向对象编程的基础;而学习过程中的每一次调试失败、每一次代码重构,都成为能力提升的阶梯。未来我将以更系统的学习计划、更严谨的开发态度,继续探索 Java 技术栈,为成为合格的软件工程师积累更多实战经验。

posted @ 2025-06-22 20:01  章羽  阅读(35)  评论(0)    收藏  举报