Java课程总结blog

一、前言

  这个学期我们一共写了11次pta作业、2次博客作业、5次实验还有学堂在线的听课,在pta和实验当中作业的难度都是逐级递增的,他们都是与我们课程息息相关的,在学完一个知识点后pta和实验就可以帮助我们进行相应的练习;而blog总结则是帮我很好的反思总结pta中相对比较难还有比较具有代表性的题目,让我们学有所得;学堂在线的课程则详细的介绍了Java课程中的一些基础语法及用法,还给我们拓展了一些书上没有的知识像正则表达式,并且在课程后面还讲解了实验的大概内容要求及注意事项;线下课程中则主要讲解了Java课程中的一些类的设计和方法还有五大设计原则这种的,不怎么仔细讲解Java的语法,这需要我们自己课后花时间去学习。

二、面向对象技术总结

  1、封装:封装的本质是是将数据和操作数据的方法进行“打包”,形成独立单元,并通过访问控制隐藏内部细节。在面向对象编程中“类”是封装的基本单元,它就像一个密封的黑盒子,盒子的内部(类的内部)有复杂的结构和逻辑,而盒子的外部(类的使用者)只需要通过特定的”接口“(方法)与盒子交互,无需了解内部细节。封装是通过修饰符像private、public、protected来隐藏细节的关键的,其能够保证代码的安全性和健壮性并且能够使维护成本降低,由于其每个封装的类都是独立模块的,所以其还具有在不同项目中复用的特点。

  · 掌握情况:通过封装的学习,我掌握了一些封装的基础用法,理解了“信息隐藏”的本质,还有“模块化设计”的基础,但是对于它具体日常业务的使用掌握的还不是特别的熟练。

  2、继承:继承的本质是让类与类之间建立“父子关系”,子类可以直接复用父类的属性和方法,同时还可以拓展自己的属性。子类通过extends关键字继承父类,自动获得父类的非私有成员、属性、方法,子类通过super关键字来调用父类的构造方法、成员;其核心作用是避免共性代码的重复编写,减少冗余,它还可以建立类的层级关系,形成“is-a”关系,让程序结构更加符合现实逻辑。

  · 掌握情况:整体上掌握的还挺不错的,在平常的练习当中能够较好的根据题目要求的场景来使用继承,当题目要求中有强“is-a”关系,且需要复用父类核心功能的时候就需要运用继承,通过对继承的信息我能够很好的复用代码,减少代码的冗余。

  3、多态:多态是指允许不同类的对象通过相同的接口进行调用,系统会根据对象的实际类型自动选择合适的实现方法。多态的本质是 “同一操作作用于不同对象,可以有不同的实现方式“,它基于继承(子类继承父类的方法,并可以重写(Override))和动态绑定(运行时根据对象的实际类型调用方法,而非编译时的声明类型)两个核心机制来实现的。多态具有灵活性,可以通过统一接口处理不同对象,降低耦合度;多态具有可扩展性,新增子类无需修改现有代码(符合开闭原则);多态还具有可读性,代码更简洁,逻辑更清晰。

  · 掌握情况:我对多态的掌握还可以,能够在提高代码复用性和可维护性的时候较好的运用多态,使代码更加的逻辑清晰。

  4、抽象类:在继承的层次结构中,每个新的子类都使类更加明确和具体。如果从一个子类向父类追溯,类就会变得更加通用且更不明确,类的设计应确保包含其子类的共同特征,有时父类会设计得非常抽象,以至于不能用于创建任何具体的实例,这样的类叫抽象类,它是种不能被实例化的类,主要作用是为子类提供通用的接口和部分实现。抽象类通常包含至少一个抽象方法(只有方法签名,没有具体实现),这些抽象方法必须由子类实现。

  · 掌握情况:这部分掌握的还可以,合理使用抽象类可以提高代码的可维护性、复用性和扩展性,但是对什么时候运用抽象类还有点欠缺。

  5、接口:接口是一种抽象类型,它定义了一组方法的签名(方法名、参数列表、返回类型),但不包含方法的实现。接口的核心作用是为不同类提供统一的行为规范,实现 “多态” 调用,它的核心特性是抽象性、多重实现和解耦,接口的设计原则有单一职责原则、最小化原则和依赖倒置原则。

  · 掌握情况:接口的掌握还是没那么好,有些时候会搞不清接口和继承,两者的使用场景有些时候会搞混

  6、集合框架:集合框架是一组预定义的类和接口,用于存储、操作和管理数据集合(如列表、集合、映射等)。它提供了统一的接口和实现,使开发者能够高效地处理各种数据结构,避免重复,它的核心概念是数据结构抽象、统一接口和算法复用。

  · 掌握情况:这个部分对List中的集合LinkedList和ArrayList的掌握的还可以,其他就掌握的不是很好。

  7、异常:异常是指程序运行时可能出现的错误或意外情况,java 异常体系基于Throwable类,主要分为三大类:

    (1)、Error(系统级错误):由 JVM 或底层系统抛出,程序无法处理

    (2)、Checked Exception(受检异常):编译时强制检查:必须显式处理(捕获try-catch或声明throws

    (3)、RuntimeException(运行时异常):非受检异常,通常由程序逻辑错误导致,编译器不强制要求处理

  · 掌握情况:异常中我对try-catch比较的熟悉,对于其他的并没有掌握的好,之后还需要继续的学习

  8、JavaFX 是用于构建富客户端应用程序的 Java 库,提供了图形界面开发的全套解决方案。

  · 核心组件:

    1. Stage(舞台)
      应用程序的主窗口,是所有场景的容器。
    2. Scene(场景)
      包含所有可视化元素的场景图,是 Stage 的内容。
    3. Node(节点)
      可视化组件的基类,如按钮、标签、文本框等。
    4. Pane(面板)
      布局容器,用于组织和排列子节点(如 VBoxHBoxGridPane

  · 布局管理器有VBox/HBox、GridPane、BorderPane、FlowPane、AnchorPane、TilePane。

   · UI 控件:

    (1)、按钮类:ButtonToggleButtonRadioButtonCheckBox

    (2)、文本类:LabelTextFieldTextAreaPasswordField

    (3)、选择类:ComboBoxListViewTableViewTreeView

    (4)、容器类:TabPaneAccordionScrollPane

    (5)、其他:SliderProgressBarDatePickerColorPicker

  · 掌握情况:javafx中一些基础的语法大概是知道有些的,但是还不是很熟悉,而且对于将他门所有语法结合在一起写代码掌握的还不是很熟练,只能每个语法写对应得方法,但如果要将他们全部熟练掌握并运用写一个像航空售票系统那样的代码还是很有挑战性的,之后的学习中还是要多多学习这种思维。

三、踩坑心得

  1、在写代码的时候,每个部分都是正确的但是会出现非零返回的错误

  像这样是因为nextInt()nextDouble()等方法不会消耗换行符,而nextLine()会读取整行内容(包括换行符),所以要在在input.nextInt()后添加input.nextLine()消耗换行符否则会出现非零返回的错误

  2、还有就是子类在继承父类的属性的时候,当时是父类有四个属性,但是有两个子类继承它的属性,其中一个是继承了父类的所有属性,而另一个子类只需要用到父类中的一个属性就可以了,当时我就直接用super(1),只赋值了一个父类的方法,但是这是错误的,即使我们不需要用到其他的属性,我们也要去赋值,即可以随便赋一个值像super(1,0,0,0)这样的

  3、在将多个对象添加到列表里面时,开始我是想这样的:

  但是这样是不对的需要这样:

  或者在括号里直接定义属性,像int radius这样如何在new Element(radius);否则会报错

四、改进建议及总结

  通过对Java这门课程的学习,我掌握了Java的一些基础语法,还有Java的面向对象这一原则及具体用法,每次的语法讲解后面都会有对应得pta练习来帮我很好得训练上课学到的知识,此外我们还进行了5次大象得实验,大象的实验是随之实验的进行层层深入的,每次的代码的实现就像是将我们所学的知识整合起来,然后运用到生活实例里面。这门课程不仅仅教会了我Java这门课,还教了我们怎么去学习,培养了我们自主学习的能力以及寻找适合自己的学习方法。课堂上老师每讲一个内容就会给我们运行一个代码例子展示给我们看,之后举一反三叫我们去编写,这很好的锻炼了我们即学即用的能力,但是感觉老师有些讲的不是很详细,有些语法讲的是个大概,希望老师语法细节可以讲的再详细一点,还有就是有些题目的跳跃有点大,希望可以再贴切一点。

 

posted @ 2025-06-17 21:50  dategirl  阅读(9)  评论(0)    收藏  举报