面向对象设计与构造--第一单元
(1)前言:
第一次作业:
采用PTAOMS登入方式,考察较简单的输入输出。
自定义 Cargo类,flight类,loadManifest类,Cargo Sorter类,main类 分别代表:
货物,航班,配载单,排序器,主类,五个类。
本次作业要求:封装性,自定义方法及其调用,for循环,if-else判断超载状态,排序方法等。
难度等级偏容易。
第二次作业:
自定义CargoCompment类 Cargo类,flight类,loadManifest类,Cargo Sorter类,main类 分别代表:
货物,航班,配载单,排序器,货舱,主类,6个类。
本次作业要求:封装性,自定义方法及其调用,for循环,if-else判断超载状态,排序方法,List,关联,等。
难度等级中等。
第三次作业:
加入loadDispatcher调度工具类等等四个类
含有分层结构:航班包含多个货舱。
含有装在校验:超重判断。
(2)设计与分析:
第一次作业:
ArryList:用来动态存储多个货物,长度可以自动化。
我体会到了类的封装与分工的重要性,我也掌握了类的使用,每个类只能负责自己的功能
,代码结构就可以清晰起来,还需要符合单一职责原则,及最小羁绊原则。
我在此次作业中练习了冒泡排序,选择排序等等
输入输出方面我学会用Scanner读取不同类型的数据,并处理输入换行问题。
总之,我学会很多东西,还锻炼了编程思维和逻辑及能力


第二次作业集:


第三次作业集:


Position 位置类
封装行列坐标信息,用于记录货舱摆放位置,提供位置信息获取方法。
Cargo 货物类
存储货物编号、重量、所属目标货舱编号,提供外部读取属性接口。
CargoCompartment 货舱类
记录货舱编号、最大载重、当前已装载重量,提供货物装载判断方法,装满则拒绝装载。
Flight 航班类
存储航班号、最大起飞重量、最大业载重量,聚合多个货舱对象,统一管理整架航班货舱。
LoadDispatcher 装载调度类
静态方法完成货物冒泡降序排序,提供根据货物编号查找货物的功能。
InputValidator 数据校验类
统一规范整数、浮点数输入范围,提升程序数据合理性。
Main 主程序
录入航班基础载重信息
批量录入多个货舱信息
批量录入所有货物信息
自动将货物按重量从大到小排序
按货物指定货舱进行自动装载,输出装载成功 / 失败
遍历判断每个货舱载重状态
(3)踩坑心得:
第一次作业集:
通过编写这次航班货物配载程序,我在实践中遇到了很多之前应该吧没有注意到的细节问题,也积累了非常宝贵的踩坑经验。
首先,我深刻认识到 Java 文件命名规则的重要性。一开始因为文件名和 public 类名不一致,导致程序一直无法编译,我花了很长时间才找到问题。这让我明白 Java 语法非常严格,文件名、类名、大小写都必须完全统一。
其次,在使用 Scanner 输入时,我遇到了换行符等等导致的输入跳过问题。使用 nextInt () 后必须处理换行,否则程序会读取到空内容而报错。这个坑让我学会了处理不同输入类型之间的切换技巧。
在编写面向对象代码时,我因为直接访问私有属性而报错,这让我更加理解封装的意义:私有变量不能直接访问,必须通过 getter 方法获取。对对对,,,同时,在对货物进行冒泡排序时,我也踩过 “直接比较对象” 的错误,后来才知道必须比较对象的属性值。
另外,中英文符号混淆是我最常犯的低级错误。不小心输入中文分号、括号,会导致满屏错误,这让我养成了写代码时使用英文输入法的习惯。
通过这次踩坑,我不仅掌握了面向对象、集合、排序、输入输出等知识点,更学会了如何排查错误、耐心调试。编程不仅是写逻辑,更是注重细节、规范和严谨性。这些经验会帮助我在今后的学习中少走很多弯路。
第二次作业集:
在编写本次航班货物配载程序的过程中,我遇到了许多实际操作中的问题很多很多111,也积累了不少宝贵的踩坑经验。首先,我在文件命名与格式上出现了错误,将 Java 文件保存为文本文档,导致程序无法正常编译运行,这让我认识到文件名必须与公共类名完全一致,且必须正确修改为.java 后缀,才能被系统识别。
其次,在使用 Scanner 进行数据输入时,我多次因为换行符处理不当导致程序跳过输入、读取内容异常,尤其是在 nextInt 与 nextLine 交替使用时,容易出现读取错误,经过反复调试我才掌握了正确处理换行符的方法,保证输入流程稳定哦。
第三次作业集:
我在编写代码时出现了中英文符号混用、变量大小写错误、直接访问私有属性等问题,这些看似细小的失误都会导致程序报错,让我深刻体会到 Java 语法的严谨性,也提醒我在编写代码时必须专注细节、规范书写。
在实现货物排序功能时,我一开始没有正确调用 getter 方法获取重量属性,导致排序逻辑无法生效,这让我进一步理解了封装的意义和对象调用的规则。通过不断排查错误、修改代码,我不仅提升了逻辑思维能力,也学会了耐心分析问题、解决问题。
(4)改进建议:
第一次题目集:
第二次题目集:
第三次题目集:
不要拖,一拖就完了,一拖就晚了,老师给了我整整十天的时间,十天哪,,,,结果我最后一天燃尽了染成灰了,染成舍利子了
都没能够将作业完成。
(5)总结:

浙公网安备 33010602011771号