第三次博客作业-面向对象课程总结
一、前言
1.Blog作业
Blog作业的难度不大,主要是对于每次大作业的分析与总结。这项作业,虽然有着三千字的高要求,以及图片排版等的要求,花费的时间较多,但是与此同时,我也能够从分析与总结中发现自己的不足,并且系统性地将其整理起来。无论是一些小细节,还是一些大问题,对于我们编程的学习都是至关重要的,通过分析与总结,我能够更好地了解问题的所在,以后更加注意去规避它们。
2.PTA作业
PTA作业的难度适中,需要花费一定的时间完成,但只要有了思路,便能很快地将其完成。于我而言,完成PTA作业遇到的阻碍主要在于理解题意以及混乱的语法,所以我很多时候都得依靠外界的帮助,才能正确地完成题目。
3.实验
实验的难度适中,但比PTA作业要小一点,但是所花费时间较多。实验系统的功能常常令人烦躁,多次想放弃写实验。
4.线上课程
线上课程的难度肯定是不大的,只要需要花费很多时间去看。这个学期由于我太过松懈,常常忘了看截止时间,所以很多视频没有在规定时间之前看完,这是一件令人遗憾的事情。
5.线下课程
线下课程难度不大,主要在于听讲。老师非常负责,我从中学习到很多。
二、面向对象技术总结
1.封装
封装是面向对象编程(OOP)的核心特性之一,它将数据(属性)和操作数据的方法(行为)捆绑在一起,形成一个独立的单元(即 “类”)。它具有数据保护,解耦等的作用。
但是在第一次电梯作业中,我并没有实现封装。具体体现在我将成员属性都设置成公共的,并且没有写getter与setter方法,这样显然是不对的,这个不利于保护类内部的程序,代码一长可能会使得程序混乱。但是后续我意识到了这个问题,在第二次电梯调度作业中将其改善,大大地提高了程序的规范性。
2.继承与多态
继承是面向对象编程(OOP)的核心特性之一,它允许一个类(子类 / 派生类)继承另一个类(父类 / 基类)的属性和方法,并可以在此基础上进行扩展或修改。继承建立了类之间的层次关系,体现了is-a的关系(例如:猫是动物)。多态是指同一个方法调用在不同对象上可能表现出不同的行为。它通过继承和 方法重写(Override) 实现,允许不同类的对象对同一消息做出不同响应。
继承可以提高代码的复用性,而多态则可以提高代码的灵活性,具有可维护性与可扩展性。
一开始我对于继承还算是比较理解,但是就是不明白为什么要多态。后来通过实验,我发现如果不通过多态,程序就会变得很混乱也会很麻烦。比如说三种动物都得发出叫声,没有多态的话,就得给三个方法命不同的名,这不仅会导致后期分不清,还会消耗脑细胞。通过这个实验啊,我也是初步理解了什么时候需要多态,什么时候需要继承。但是对于这两个,我还是没有深入地了解,导致一旦有几个相似的选择摆在我面前,我就会神志不清,想怎么搞就怎么搞,最后导致程序乱七八糟,这显然是不对的。
3.抽象类与接口
抽象类是一种不能被实例化的类,它的主要作用是为子类提供统一的接口和部分实现。抽象类通过abstract关键字声明,可以包含抽象方法(只有方法签名,没有实现)和具体方法(有完整实现)。子类必须实现父类的所有抽象方法,否则也会被视为抽象类。接口是一种完全抽象的类型,它只包含方法签名(没有实现)和常量。在 Java、C# 等语言中,接口使用interface关键字定义,一个类可以实现多个接口。接口定义了对象的行为规范,但不涉及具体实现。
两者的功能很像,都用于定义规范和实现多态。但抽象类主要用于当需要定义一组相关类的共同行为,且部分实现可以共享时。而接口主要用于当需要定义不相关类的共同行为,或实现多重继承特性时。
关于这两个技术,我都曾犯过错误。在使用抽象类时,我错误将抽象类的那个对象实例化了。比如说第一次航空货物运输的大作业中,我将BasicInformation定义为抽象类,但错误地将其实例化。在使用接口的时候,所有接口方法仍定义为抽象方法,导致实现类重复实现相同逻辑。
这两样技术通过不断地学习和练习,我认为我还是比较掌握的,能够熟练地运用,也不会莫名奇妙地报错,就是还没有深入学习哪种场合运用比较合适。
4.集合框架
Java 的集合框架(Java Collections Framework)是 Java 标准库的核心组成部分,提供了一套用于存储、操作和管理数据的接口、类和算法。它分为两大分支:Collection(存储单个元素)和Map(存储键值对),并通过多种具体实现类提供不同的数据结构特性。
这两大分支,Collection运用地比较多,它几乎从第一次大作业就开始陪伴我们了。比如说经常会用到的ArrayList,LinkedList,Queue接口。ArrayList和LinkedList用得最多,而Queue主要用于第一次大作业,也就是电梯调度的题目。而关于Map接口,则用得比较少。据我所知,Java关键词的那道题可以用这个,用这个的话比自己写的排序要快一点。
因为多次使用ArrayList和LinkedList,我对其的了解不可谓不深,但对于其他Java的集合框架简直是空白一片,往后在写Java程序时,我可以多运用一下Java的集合框架,以便加深自己对它的认知。
5.异常
Java 中的异常技术是一种处理程序运行时错误的机制,通过将错误信息封装成对象并进行传递和处理,提高了代码的健壮性和可维护性。
说实话,我对于它并不是很了解,主要是有几次实验用了它,还是同学告诉我对。运用的是try-catch-finally这个,可以用来捕获并处理异常。我对它有个大体的认知,知道大体该怎么写,但是写完又会报错。
所以我对它的掌握非常不充分,我应该多学学,并且进一步练习。
6.JavaFx
JavaFX 是 Oracle 推出的用于构建富客户端应用程序的开源框架,旨在替代 AWT 和 Swing,为 Java 开发者提供现代化、高性能、跨平台的图形界面解决方案。它集成了界面设计、媒体处理、3D 图形等功能,支持桌面、移动和 Web 端部署。
最后一次实验和大作业和JavaFx有关,都得运用到其中的技术。我认为还是非常有趣的,但就是感觉掌握的不好,看这个程序呢看得懂,但就是自己写的乱七八糟。JavaFx的知识点也挺多的,由于没有掌握得很清楚,导致我写那个系统的时候,不知道该用哪个好一些,好不容易选定了用哪个吧,后面又会出现一些乱七八糟的问题。
综上所述,我于掌握JavaFx而言,只是一个小白,还需要深入地学习,然后我准备在做完“航空货物管理系统”后,再去整理与总结一遍。
三、踩坑心得
1.理解题意的能力不足
在每次写作业的时候,我就总是读不懂那个题目,导致我要看好久,想好久,最后还是理解错了。
2.不是很在意语法
我的语法可以说是学得非常混乱啊,真的,每次写程序的时候它都得报好多个错,然后我去改啊,这样不但浪费时间,还打断我思路。所以在学习语言的时候,还是要注意下一门语言的语法的。
3.调试能力不足
因为我非常讨厌调试,所以一旦出了什么逻辑问题,我就喜欢干瞪眼,一点一点地带数据进去套啊。这样虽然可以,但是很慢,而且有些错误也不太好发现。再加之我调试能力不足,更不想去调了,久而久之,调试能力就越来越差,最后形成了一个恶性循环。
四、改进建议及总结
1.总结
我认为这门课程还是设计得挺好的,虽然一开始我觉得压力有点大,但是通过一个学期的学习,我的设计能力确实得到了很大的进步。
2.改进建议
2.1教师、课程、作业:
我觉得这几个方面已经挺好了,不知道该提什么建议。
2.2实验:
实验系统太浪费时间了,还让人崩溃,比较影响心态啊,我觉得这个可以放松点要求吧。
2.3课上及课下组织方式:
总体来说挺好的,老师们都很负责,讲得也很好,但我就是觉得学堂在线那个能不能不要强制每个人看。
浙公网安备 33010602011771号