第三次Blog作业
第三次Blog作业
一、 前言
在本学期的Java课程学习中,我经历了Blog作业、PTA作业、实验、线上课程以及线下课程多个层面的学习。每种任务交错分配,没学习一个新的知识就会有对应的任务需要完成,安排的较为合理。除了PTA有部分题目集会出现难度较大的程序迭代题以外,其他任务的难度不大,工作量上在本学期学习的课程中偏大,但因此在本门课程中我学到了许多知识。
二、 面向对象技术总结
封装
封装是面向对象编程的基础特性,它将数据和操作数据的方法组合在一个类中,通过访问修饰符(如private、protected和public)隐藏内部实现细节,仅暴露必要的接口与外界交互。这样做不仅保护了数据的安全性,避免被非法访问和修改,还降低了模块间的耦合度,使代码更易于维护和扩展。例如,在一个Person类中,可以将name和age属性设为private,并通过public的getter和setter方法来访问和修改这些属性,同时在setter方法中添加数据校验逻辑,确保数据的有效性。
继承
继承是类与类之间建立 “is-a” 关系的重要机制,子类能够继承父类的属性和方法,从而实现代码的复用。在 Java 中,使用extends关键字实现继承,一个子类只能继承一个父类。通过继承,子类可以获得父类的非私有成员,并且可以重写父类的非final方法以满足特定需求。此外,子类构造函数默认调用父类的无参构造函数,也可以通过super()显式调用父类的特定构造函数。继承使得代码结构更加清晰,减少了重复代码的编写,提高了开发效率。
多态
多态是指同一操作作用于不同的对象,可以有不同的执行结果,它是面向对象编程灵活性和扩展性的重要体现。多态分为编译时多态和运行时多态。编译时多态通过方法重载实现,即在同一个类中定义多个同名但参数列表不同的方法,编译器在编译阶段根据参数类型和数量确定调用的方法。运行时多态则通过方法重写和对象的向上转型实现,运行时系统根据对象的实际类型动态绑定方法。例如,定义一个Animal类和它的子类Dog、Cat,每个子类重写Animal类的speak方法,当使用Animal类型的引用指向不同子类对象并调用speak方法时,会根据对象的实际类型执行相应子类的方法。
抽象类
抽象类是使用abstract关键字修饰的类,它不能被实例化,主要用于作为其他类的基类。抽象类可以包含抽象方法和具体方法,抽象方法只有声明而没有实现,必须由继承它的子类来实现。抽象类为子类提供了一个通用的框架和规范,子类在继承抽象类时,必须实现其抽象方法,从而保证了子类具有某些特定的行为。例如,定义一个抽象类Shape,其中包含抽象方法draw,具体的图形类如Circle、Rectangle继承Shape类并实现draw方法,以绘制不同的图形。
接口
接口是一种特殊的抽象类型,使用interface关键字定义。接口中只包含抽象方法(Java 8 及以后版本支持默认方法和静态方法)和常量,接口中的方法默认是public abstract,属性默认是public static final。一个类可以实现多个接口,从而实现了多继承的效果,弥补了 Java 单继承的局限性。接口用于定义一组规范和行为,实现接口的类必须实现接口中的所有抽象方法。接口在程序设计中常用于解耦,使不同的类可以遵循相同的规范进行交互,提高了代码的可扩展性和可维护性。
集合框架
Java 集合框架是一组用于存储和操作数据集合的类和接口,它提供了丰富的数据结构和算法,方便开发者处理各种数据。集合框架主要分为Collection和Map两大体系。Collection接口是单列集合的根接口,它的子接口包括List(有序、可重复)、Set(无序、不可重复)和Queue(队列,遵循 FIFO 原则)。Map接口用于存储键值对,常见的实现类有HashMap(基于哈希表,查询效率高)、TreeMap(基于红黑树,有序)等。集合框架使用泛型来指定元素类型,确保类型安全,同时提供了迭代器、增强型for循环等遍历方式,使得对集合的操作更加便捷高效。
异常
异常处理是 Java 程序中用于处理运行时错误的机制,它能够提高程序的健壮性和可靠性。Java 中的异常分为 Checked 异常和 Unchecked 异常。Checked 异常是编译器要求必须处理的异常,如IOException,通常通过try-catch块捕获处理,或者使用throws关键字声明抛出。Unchecked 异常继承自RuntimeException,如NullPointerException,不需要强制处理,但在程序运行时可能会导致程序崩溃。通过合理使用try-catch-finally结构,程序可以在发生异常时进行适当的处理,如记录错误日志、释放资源等,避免因异常导致程序异常终止。此外,开发者还可以自定义异常类,继承自Exception(Checked 异常)或RuntimeException(Unchecked 异常),以满足特定业务场景的需求。
JavaFX
JavaFX 是 Java 平台的下一代图形用户界面(GUI)框架,用于构建富客户端应用程序。与传统的 Swing 框架相比,JavaFX 采用了基于场景图的架构,提供了更现代、更流畅的用户界面体验,并且支持硬件加速渲染,提升了图形处理性能。JavaFX 包含了丰富的 UI 组件,如按钮、文本框、列表视图等,同时支持 FXML(一种基于 XML 的标记语言)来定义用户界面,使界面设计与代码逻辑分离,便于团队协作开发。此外,JavaFX 还支持使用 CSS 进行样式化,开发者可以轻松定制界面的外观和风格。在交互方面,JavaFX 提供了强大的事件处理机制,通过 lambda 表达式可以简洁地编写事件处理代码。JavaFX 还具备动画、多媒体处理等功能,能够满足各种复杂应用的需求。自 Java 11 起,JavaFX 成为独立模块,需要在项目中手动引入相关依赖进行使用。
三、 踩坑心得
- 要小心空指针异常
- 异常处理很重要
- 不要混淆equals()和==
四、 改进建议及总结
实验提交系统使用起来太不方便了,不能复制粘贴还不能快速打出关键词,甚至拼写错误还很难发现,要运行了之后去对应的行数对照自己的代码才能发现。

浙公网安备 33010602011771号