面向对象设计与构造--第一单元

(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读取不同类型的数据,并处理输入换行问题。

总之,我学会很多东西,还锻炼了编程思维和逻辑及能力

 

 

屏幕截图 2026-05-18 222034

屏幕截图 2026-05-18 222205

第二次作业集:

 

 

 

 

屏幕截图 2026-05-18 222508

屏幕截图 2026-05-18 222632

 

 

第三次作业集:

屏幕截图 2026-05-18 215555

屏幕截图 2026-05-18 221833

 

Position 位置类
封装行列坐标信息,用于记录货舱摆放位置,提供位置信息获取方法。
Cargo 货物类
存储货物编号、重量、所属目标货舱编号,提供外部读取属性接口。
CargoCompartment 货舱类
记录货舱编号、最大载重、当前已装载重量,提供货物装载判断方法,装满则拒绝装载。
Flight 航班类
存储航班号、最大起飞重量、最大业载重量,聚合多个货舱对象,统一管理整架航班货舱。
LoadDispatcher 装载调度类
静态方法完成货物冒泡降序排序,提供根据货物编号查找货物的功能。
InputValidator 数据校验类
统一规范整数、浮点数输入范围,提升程序数据合理性。
Main 主程序
录入航班基础载重信息
批量录入多个货舱信息
批量录入所有货物信息
自动将货物按重量从大到小排序
按货物指定货舱进行自动装载,输出装载成功 / 失败
遍历判断每个货舱载重状态

 

 

(3)踩坑心得:

 

 

第一次作业集:

通过编写这次航班货物配载程序,我在实践中遇到了很多之前应该吧没有注意到的细节问题,也积累了非常宝贵的踩坑经验。
首先,我深刻认识到 Java 文件命名规则的重要性。一开始因为文件名和 public 类名不一致,导致程序一直无法编译,我花了很长时间才找到问题。这让我明白 Java 语法非常严格,文件名、类名、大小写都必须完全统一。
其次,在使用 Scanner 输入时,我遇到了换行符等等导致的输入跳过问题。使用 nextInt () 后必须处理换行,否则程序会读取到空内容而报错。这个坑让我学会了处理不同输入类型之间的切换技巧。
在编写面向对象代码时,我因为直接访问私有属性而报错,这让我更加理解封装的意义:私有变量不能直接访问,必须通过 getter 方法获取。对对对,,,同时,在对货物进行冒泡排序时,我也踩过 “直接比较对象” 的错误,后来才知道必须比较对象的属性值。
另外,中英文符号混淆是我最常犯的低级错误。不小心输入中文分号、括号,会导致满屏错误,这让我养成了写代码时使用英文输入法的习惯。
通过这次踩坑,我不仅掌握了面向对象、集合、排序、输入输出等知识点,更学会了如何排查错误、耐心调试。编程不仅是写逻辑,更是注重细节、规范和严谨性。这些经验会帮助我在今后的学习中少走很多弯路。

 

 

第二次作业集:

在编写本次航班货物配载程序的过程中,我遇到了许多实际操作中的问题很多很多111,也积累了不少宝贵的踩坑经验。首先,我在文件命名与格式上出现了错误,将 Java 文件保存为文本文档,导致程序无法正常编译运行,这让我认识到文件名必须与公共类名完全一致,且必须正确修改为.java 后缀,才能被系统识别。
其次,在使用 Scanner 进行数据输入时,我多次因为换行符处理不当导致程序跳过输入、读取内容异常,尤其是在 nextInt 与 nextLine 交替使用时,容易出现读取错误,经过反复调试我才掌握了正确处理换行符的方法,保证输入流程稳定哦。

 

第三次作业集:

我在编写代码时出现了中英文符号混用、变量大小写错误、直接访问私有属性等问题,这些看似细小的失误都会导致程序报错,让我深刻体会到 Java 语法的严谨性,也提醒我在编写代码时必须专注细节、规范书写。
在实现货物排序功能时,我一开始没有正确调用 getter 方法获取重量属性,导致排序逻辑无法生效,这让我进一步理解了封装的意义和对象调用的规则。通过不断排查错误、修改代码,我不仅提升了逻辑思维能力,也学会了耐心分析问题、解决问题。

 

 

(4)改进建议:

第一次题目集:

第一,代码规范能力需要加强  我在编写过程中存在命名不规范,大小写随意、缩进混乱的问题,部分方法名没有遵循驼峰命名规则。今后我要严格遵守Java编码规范,统一大小写格式、规范变量与方法命名,保持代码整洁工整,提高代码可读性。
第二,代码调试与排错能力不足  本次编写中,我多次遇到输入换行冲突,私有变量访问失败、排序逻辑出错等问题,排查速度较慢。今后我要养成逐行检查代码的习惯,熟悉常见报错原因,提高独立排查bug的能力,减少低级语法错误。
第三,面向对象思想掌握不够熟练。虽然本次程序使用了多类分工的结构,但我对类与类之间的调用关系理解不够透彻,代码耦合度偏高。后续我要加强面向对象思想练习,熟练掌握封装特性,合理划分各类职责,让程序结构更加清晰。

 

第二次题目集:

第一,逻辑思维与代码优化能力有待提升。本次冒泡排序写法较为基础,程序没有异常判断,对非法输入、负数重量等边界情况没有防护。今后我要多考虑程序的完整性,增加容错判断,优化算法逻辑,提升程序健壮性。
第二,动手实践能力需要持续加强  本次编写中我对Scanner输入、集合等等使用不够熟练,经常出现细节失误。我会多敲代码、多复盘,积累编程经验,熟练掌握常用语法,提升代码编写效率。

第三次题目集:

不要拖,一拖就完了,一拖就晚了,老师给了我整整十天的时间,十天哪,,,,结果我最后一天燃尽了染成灰了,染成舍利子了

都没能够将作业完成。

(5)总结:

总体而言,三次编程练习让我清楚认识到自身不足。
今后我会注重代码规范,加强逻辑思考,勤于练习,不断提升自己的编程能力和严谨的编程思维。
还要用好Arrylist,及likelisted;
还要学增强型循环 还要学继承多态等等

 

posted @ 2026-05-18 23:13  BbLbWdDd  阅读(7)  评论(0)    收藏  举报