总结性Blog
针对本门课程做一个总结。内容如下:
1.前言:
首先,本门课程以线上和线下课程展开。线下课程主攻程序设计时的思维逻辑和难以理解的知识点讲解,课程工作量和难度在后期有显著提升,但满足循循渐进的学习过程。线上课程以类似于网课的形式开展,主攻Java程序编写时的一些语法规则和Java基础的讲解,并附有随堂的测验,其工作量和难度都适中可以较好的完成。本学期发布了十一次PTA作业,对数组,ArrayList,List,定义,Iterator,算法,算法结构等范围进行练习,有的作业简单有的较难。其次,还有实验,实验内容相对简单。但工作量较大。线上课程,时间较久,内容相对简单还有翻转课堂,翻转课堂也锻炼了我们的小组协调能力和自学能力、讲解能力,这个困扰了我很久。
2.面向对象技术总结:
1.对于封装性:我对于封装性的理解,就是把不同的职责放于不同的类中。最核心的点就是降低类与类之间的耦合度,从而提高代码的安全性、可维护性和可复用性。Java提供了四种访问修饰符,分别是public、protected、private和默认(无修饰符)。通过使用这些访问修饰符,可以控制类的成员(属性和方法)的访问权限,从而实现封装。private,私有访问权限,只能在类的内部访问。通常用于隐藏类的内部属性和方法。protected,受保护访问权限,可以在同一个包内访问,也可以在其他包的子类中访问。 public,公共访问权限,可以在任何地方访问(跨包需要导包)。default(无修饰符),默认访问权限,只能在同一个包内访问。但对于封装类中的toString()和compareTo()我仍然不会用。
2.对于继承和多态,继承其实就是子类extends父类,多态其实就是多个子类extends父类。子类构造函数必须先调用父类构造函数(super()),这个其实感觉简单。实验三 "动物继承体系" 是理解继承的关键:动物基类定义共同属性(名称、体重),大象 / 老虎等子类重写enterElectric()方法实现不同叫声。多态的应用体现在排序功能上:通过Comparator接口实现不同排序策略(按体重、按战斗力),同一排序方法能处理不同类型动物,这让我体会到 "接口编程" 的灵活性。不过在处理子类构造函数调用父类参数时,初期常忘记super()的使用,导致编译错误。最震撼的顿悟发生在实验四:当同一段排序代码sortAnimals(animals, new WeightComparator())既能按体重排,又能按战斗力排。这些都是继承和多态的具体使用。
3.对于抽象类,其实就是class前加abstract,里面有抽象方法。抽象类让我明白了如何定义一个通用的框架,为子类提供一个统一的接口。通过抽象类,可以将一些通用的属性和方法定义在父类中,而将具体的实现细节留给子类来完成。这样,可以避免代码重复,提高代码的复用性。
4.对于接口,其实就是直接把抽象方法放入一个类中,使用时,用implements。一个类可以实现多个接口,通过接口可以实现多重继承的效果。
5.对于集合框架,有TreeMap,StringBuilder。这些我用的不太多。对于异常,这些有InputMIsmatchException,以及其他的if else结构。
6.对于JAVAFX,JavaFX是Java的下一代GUI工具包,用于替代传统的Swing框架。它采用场景图(Scene Graph)的树形结构来组织UI组件,支持CSS样式、FXML声明式布局和丰富的动画效果。JavaFX的核心类包括:Stage(舞台,顶级容器)、Scene(场景,包含控件)、Pane(布局面板)和Control(各种UI控件)。对于eclipse配置,我配了很长时间,最终用了另一种方式才能用。而且JAVAFX有好多东西我不会。这些还得练。 这些技术主要考察的是对于算法的理解其次考察的是结构,但由于我对算法的不熟悉,导致这些都不行。
3.踩坑心得:
1. 对于while结构如果累加时要>=0,而对于List循环输出可能会输出null这个我也不知道怎么解决。对于继承和多态,父类的抽象方法要在子类复写。
2. 还有在处理浮点数格式化输出时,我因对数据类型转换理解不足导致编译错误。在一个计算商品价格折扣的程序中,需求是将计算结果保留两位小数。我错误地在方法中使用double作为返回值,并直接返回String.format("%.2f", value),我误以为String.format()返回的仍是double类型,结果导致编译错误。实际上,该方法返回的是格式化后的String对象。正确的做法是先进行数学运算,最后在展示时格式化;
3.对于电梯类迭代是我的痛,算法不会,一直坐在电脑前的时间一直历历在目。这也给了我一条经验,要先规划,再写思路再根据思路写代码。
4.由于我不会调试,导致我经常只能自己看代码,或者查如何调试,但经常以失败告终。
4.改进建议及总结
.对于实验提交系统,我建议开通复制粘贴功能,原因如下:
1、真正学习的人早在写代码的过程中提升了速度,所以不用在意这个顾虑
2、复制粘贴可以提升速度,便利学习。
总结:
对于写代码我有一种厌烦心理,这是我的一个弱点。我得克服自己的弱点。还得多练。虽然学习过程中遇到了不少困难,比如初期代码逻辑混乱、对多态理解不透彻等问题,但通过不断调试、查阅资料和请教他人,我逐渐掌握了用面向对象思维组织代码的能力。针对这些问题,我希望通过上述提出的改进建议,能够进一步优化 Java 课程的教学,让后续的学习更加高效和顺畅。同时,我也将在未来的学习中,更加注重对薄弱知识点的学习和练习,积极参与实践项目,不断突破自我,努力提升编程水平,为成为一名优秀的程序员奠定坚实的基础。我相信,只要保持积极的学习态度和坚持不懈的努力,我一定能够在 Java 编程的道路上取得更大的进步。

浙公网安备 33010602011771号