第三次blog作业

一、前言

1.Blog作业

对于博客作业,我认为是对自己的学习阶段的一次很好的总结,工作量不大,难度也并不高,一个人静下心来去回看总结之前写的题,犯了什么错误,在什么地方卡了很久,其实也不失是件坏事,通过第一次博客我才彻底明白电梯允许的逻辑,同时也明白自己的能力不足,哪些知识点不会,由此进行下一步的学习。
对于博客需要的两个软件POWERDESIGN和SOURCEMONITOR,让我很清晰的看到自己代码的结构以及不足点,学习好这两个软件帮助我以后程序的设计。为了写博客,我还特地学习了makedown的使用,也算掌握了一种新东西。

2.PTA作业

pta作业整体难度不算特别大,除了几次电梯的迭代,剩下的都是把类图给你让你照葫芦画瓢写,基本不涉及算法,主要靠考察的还是类的设计和类与类的关系,像继承、关联、聚合等,还有抽象类和接口的使用。这些题都是只要花时间都是可以独立完成的,个别像第二次博客这种就需要,更加细心了,设计的类太多,需要从一开始就好好设计,以便后续开发修改。

3.实验

实验总体难度不大,但是够花时间,它不像idea内写代码,可以补全和提醒错误,这会导致在学校自己的平台中容易打错几个字母报错,总之就是过于原始,比较花时间。
除了最后一次涉及javafx的实验,确实有一定难度,在花了不少时间后总算完成了,尽管效果不尽人意,但是奇怪的是明明在idea上可以完整运行,在学校的系统却出了问题,至今未解。

4.线上课程

线上课程的难度不大的,只是需要花费很多时间去看。但这个学期由于我太过松懈,常常忘了看截止时间,所以很多视频没有在规定时间之前看完。

5.线下课程

总体学习到的还是很多,老师讲的也很清楚明白。

二、面向对象技术总结

1. 封装

封装是为了保证数据的安全性,使外部代码无法直接对属性进行非法操作,实现了数据的隐藏,外部就不会轻易修改程序的数据,保证程序的安全。对于获取和修改只可以通过get、set方法来实现,这就是为什么每个类中都会存在get、set方法。

2. 继承

继承是实现代码复用的重要手段,可以很有效的减少代码的使用量。父类有的子类也有,但子类是父类的扩展,一个父类可以有多个子类,但一个子类只能有一个父类,在一些代码量多的程序中为了实现功能,同时减少代码量,就会使用继承,同时后续的抽象类也是要通过继承来实现。

3. 多态

多态的概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。如我定义了个抽象类,它有三个子类,子类都有一个行为相同、具体做法不同的方法,像是实验中的Animal类,方法是call

Aniamal aniamla=new Lion()/Tiger()/Elephant();
animal.call;

上述就实现了多态,不同的对象去完成时会产生出不同的状态。

4. 抽象类

一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类的主要是实现多态,同时简化代码,减少代码的复用。抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

5. 接口

在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。一个类只能继承一个抽象类,而一个类却可以实现多个接口。

6. 集合框架

类似c语言中的数组,但这个范围更加广泛,基本同类型的都可以创建成列表。也可以和接口结合进行列表的排序。

8. JavaFX

可以说是整个课程最难的地方,基本要靠自学,同时还要多实践才可以比较好的掌握,对于前端的设计还是十分需要想象力的,不然会显得很平庸,而据体功能的实现,需要详细学习ui控件才可以用最简单的方法实现,事件处理、事件过滤器的灵活使用可以更好的实现前端与后端的交互。

三、踩坑心得

1、完成类的设计再进行下一步

对于任何项目,第一步都是完成类的设计,这会极大帮助后续代码的修改,像是电梯的时候,一开始想到什么写什么,类都是乱的,后续开始修改才发现会越改越乱,最终全部重写。

2、职责单一原则很重要

由于并未做到职责单一原则,导致源码迭代时,很多小细节都要额外处理,所有方法在同一个类中,彼此耦合性太强,导致一个改变则全事变,如果类和类随意定义不属于自身的方法,会导致后续开发十分混乱,不方便阅读。

3、抽象类

关于抽象类,以及抽象方法,抽象类不可以构造,抽象方法,其子类必须要实现,多次因为没有实现而报错,建议最好用@override。

四、改进建议

  • 方法其实设计过于繁杂,设计的其实并不聪明,if-else嵌套层数有点过多,有一种特殊情况我是单独列出来的,不利于后续改进维护,if中判断条件过多,代码稳定性差

  • 代码注释少,可读性差,一些方法命名不合理,外人不容易看懂

  • 方法尽量做到单一,降低耦合性,类的设计必须遵守单一职责原则,后续的改进可以朝MVC结构改进,即增加View类,将输入输出单独拿出来

  • 输出时可以使用ToString来保证格式,实现输出的统一。

  • 补充代码注释,梳理类方法结构提升内聚性。

五.总结

这个学期的学习相较上学期难度有所上升,要花的时间也更多了,学到的东西也更加可以实践了,同时为后续学习打下了一个基础,老师们抓的很紧,自己也需要花更多时间。

posted @ 2025-06-22 19:31  蔡羿辉  阅读(12)  评论(0)    收藏  举报