记面向对象程序设计总结
前言:
就本学期面向对象程序设计来说收获还是比较大的,直观来说我掌握了Java的基础语法,相较于上学期的基础程序设计来说,本学期的学习更侧重针对于对象的程序设计,而不是过程,但本学期所学Java语法更像是C 语言实现语法的替代,但Java比C语言更简单实用,更容易制作程序,在呈现给用户的过程中Java更加直观。本学期面向对象程序设计课程采用线上线下相结合的方式来学习,以及采用Pta来考察,用Blog作业来总结知识,形成系统学习。个人认为线下学习做笔记随后复习的效率更高。接下来,我就来总结本学期面向对象程序设计课程所学知识。
面向对象技术总结:
我们最先学习的是认识到c语言与JAVA语言的不同一个是面向过程的,而一个是面向对象的。分别就面向对象的程序是由什么构成和面向过程时这个程序由什么构成,来展开对JAVA的学习。我们最先了解的是JAVA语言中的类。类是将实体的数据和函数封装在一起,类是静态的,类是生成对象的模板。学完了之后,我们又学习了JAVA的大致思维,包括抽象,JAVA的语法特点、标识符、数据类型等形成了一个对JAVA的总体认识。然后,我们开始学习细化JAVA的基础语法,学习JAVA中的关键字static、import、class、println等,我印象最深的则是JAVA中的输入方法与c语言较为不同(printf、println、format),还有public、private、default、protected等来对变量进行限制。学完这个之后,我们开始学JAVA中数组的输入输出,数组的运用。
比如:
int n=scanner.nextInt();
int[]a=new int[n];
for(int i=0;i<n;i++){
a[i]=scanner.nextInt();
}
以上这个例子就是JAVA中字符串的输入,相较于c语言来说,步骤较为麻烦。之后我们学习封装了解到了类的单一原则。主要就是为了保证类的功能的可复用性。我们又学习了正则表达式和Array List以及字符串的操作。
正则表达式主要是学习相关符号所对应表达的意思来读取输入的信息。正则表达式是可以帮助我们更好在不同的文本信息中提取出对我们有用的信息,对多数信息进行一个筛选。我们只需要写出对应的信息格式,然后在操作中与之匹配,然后将匹配的内容再次操作就可以了。
ArrayList像一个能够装各种各样变量然后集合成一个单位元,然后以一个单位元为单位的一个数组。我们可以像数组一样调用ArrayList,然后对每一个ArrayList中的元素进行操作,从而可以使一个程序对应多个对象,在ArrayList操作中定义一个对象它的声明类和它的实际类并不一样,这也涉及到后面我们所说的抽象类的知识。
然后是字符串的操作。用正则表达式来对应字符串,是我常用来输入筛选字符串的方法,然后再用equals等来字符串进行操作。之后我们学习了继承与多态,主要是父类和子类,这在之后的JAVA学习中是很关键的一步。我们设置一个父类,而他的此类将会完全继承于父类,需要调用关键字extends和super,但子类在完全继承父类所有功能的基础上,还可以增加自己的功能,定义自己的变量。多态就是指用多个类来封装,实现类的单一原则。这里我们学习了重写,但我们需要注意的是私有方法不能被重写。用final修饰类是类不能被继承或者覆盖。当实例方法可访问时才可重写。重载和重写的主要区别体现在定义、作用范围、多态实现方式及参数要求等方面。 重载关注同一类中方法的参数多样性,而重写关注子类对父类方法实现的覆盖。
我们学习抽象类与接口。就抽象类与接口来说,他俩也是属于继承。首先来谈抽象类。抽象类也是先定义了一个父类。我们先用abstract定义一个抽象类,它里面包含着抽象方法,抽象方法不用具体给出操作,然后我们再定义它的子类,他继承这个抽象类。这个子类若不标明abstract,必须实现抽象类中的所有抽象方法,其用法跟子类父类的继承一样。但这里需要注意的是抽象类不可实例化。抽象类中也可包含具体的方法,不一定全部必须为抽象方法。我们这个ArrayList中定义的对象,它的实际类和它的声明类不同,这里就运用了它的声明类可以是一个抽象类,而实例类是它抽象类的子类。这里的例子就是大象进冰箱问题可以设置一个动物类做他们的抽象类,然后再细化到每一个动物,然后设置一个信息进入ArrayList列表,但是可以对多个动物进行不同操作。这个抽象类就要选于对于不同对象他们所共同的特点来设置这个抽象类。
学完抽象类后,我们开始学习接口,由于我们一个类如果只能继承一个父类,则会功能不那么完全。所以我们发明接口,是表明一个类可以继承多个接口,这个接口的功能可以在这个类中得到完全实现。接口在这里也可以看作是一个父类。他相当于一个抽抽象类,也不能是被实例化。接口中所有的方法都是公有的,关键字是implements。接口实际上跟我们以上讲的抽象类差不多,但是我们一个子类只能继承一个父类或抽象类,但是他可以连接多个接口,来实现接口中的方法。
学习完这些基础方法后,我们对JAVA的学习基本完善,然后我们学习异常处理,这些异常是使代码非正常终止的异常,它可以分为我们可以处理的异常和不可以处理的异常。我们可以处理的异常就是例如IDEA我们报出来的错误,我们可以根据指引然后将这些错误修改。而不可处理的异常是我们并没有报出错误,但在运行时使我们的代码异常终止的异常,面对这些异常,我们可以采用catch和try的方法,将异常丢出去,如果出现异常,我们执行别的操作,来跳过这个异常。异常的关键字是throws,若父类未声明异常,则子类也不应该有异常。一个派遣只能捕获一个异常。
在学习完这些程序设计后,我们就开始学习JAVAfx,就相当于c语言中我们之前学的ege。我个人而言,JAVA fx可以分为学习动画前和学习动画后。这些动画前我们主要学习一些布局,还有一些图形如何画。动画后,我们针对的是动态地设计页面。当然每一个功能都包含着颜色填充,字体设计等等个性化设计。JAVAfx的基本构架有:Scene:Scene 是放置在 Stage 上的内容容器,它包含了所有要在 Stage 上显示的可视化组件(如按钮、标签等)。一个 Stage 可以包含一个或多个 Scene,但在某一时刻只有一个 Scene 是可见的。Nodes 是 JavaFX 场景图中的基本构建块,包括各种可视化组件(如 Button、Label、TextField 等)和布局容器(如 VBox、HBox 等)。
JAVAfx应用程序的基本结构:启动类:每个 JavaFX 应用程序都有一个启动类,这个类必须继承自javafx.application.Application类。在这个类中,需要重写start(Stage primaryStage)方法,这个方法是 JavaFX 应用程序的入口点。布局和组件设置:在start方法中,通常需要创建和配置布局容器和组件。可以使用各种布局管理器(如前面提到的 VBox、HBox 等)来组织组件,并且设置组件的属性(如大小、颜色、字体等)。事件处理:JavaFX 中的组件可以触发各种事件,如按钮的点击事件、文本框的输入事件等。为了处理这些事件,需要为组件添加事件处理器。
踩坑心得:
这个JAVA学习来说,我认为我掌握的最不好的就是JAVAfx。首先我认为我自我学习能力还是不足的。JAVAfx的功能据我最近在做的作业,航空运输系航空运输管理系统来说,有很多功能我都是很难以用JAVAfx独立实现的,我都要想实现一个功能,而去网上搜集一下方法。这样让我的代码进程很慢,并且我用了网上所说的这个方法,但我并没有完全掌握这个方法,还需要我下去再次总结,再次学习。然后JAVAfx是翻转课堂,同学们自己讲的,我听的也不是很明白。我认为如果我发现了某个功能很常用,多运用一下,对于我这个掌握是有好处的,同时我还喜欢在网上找一些课程来先系统的学习一下再去用。这样能加深我对知识的掌握印象。其次,我对字符串的处理还不是很熟练。因为我常用的就是equals,而其他对字符串的处理用的不多,因此也就只掌握了equals,我觉得后续还应该再了解一些字符串的处理。然后我对compare的运用还是不熟练。这三部分是我自己掌握不好的。但我认为JAVA中最好用的是正则表达式和抽象类,这两个真的是提高了代码的复用率,而且是我的代码稳定性更高,更加易懂。
改进建议及总结:
改进意见的话,我希望之后的课程学习老师可以把一些上课教的代码发到交流群里让学生再次学习思考一下。有时候上课笔记记得并没有跟上老师打的代码,是对于新学的知识点来说,我认为模仿是最有效的一个学习方法,更喜欢从代码中理解知识,当然实例化的代码能让我更清楚这个方法的用法。总结就是JAVA虽然叫c语言来说,打字是更多了,步骤也更繁琐了,他的方法相对于c语言来说更为简洁明了,而且复用率更高,更加直观,学习起来也比c语言好学,同时JAVA这门语言本身就定义了很多方法,而不用我们自己去再定义函数,这是很方便的。我认为JAVA对于程序开发来说是更为实用的。

浙公网安备 33010602011771号