Java课程总结性Blog
Java课程总结性Blog
前言
- 先从三次的Blog作业来总结。我承认,在Java课程所有的学习过程中所布置的作业来说,Blog作业是最繁琐也是最令人头疼的一种作业形式。对于工科学生来说,我都选择学工科了,写总结、写报告特别是这种要求至少3000字的,真的很难写的下地。不过还好的是,就像前两次Blog作业,不是纯让你纸上谈兵,而是要结合代码啊、SourceMonitor的结果来分析,这样可以省去很多自己组织语言的机会(当然不是来凑字数的)。但话又说回来,这门作业虽然很繁琐很耗时间,但却是不是这门课程最难的作业,难也算不上,只是需要你花时间。也算是互补了吧。
- 接下来就是我个人认为的本门课程的核心作业——PTA作业。个人对于PTA作业是又爱又恨的。爱是爱在只有通过编程实际的题目才能检测自己学习的成果,光学不练是不知道自己是否真正掌握了某个知识点的,再者通过写实际的题目才能切实地提高自己的编程能力,并且写完之后进行总结才能知道自己在写代码的过程中会犯哪些错误,从而让自己在下次编程时不犯同样的错误。恨是恨在,有些题目对于刚学的我来说实在是有点难,难免会写不出来,在这里特别强调电梯那三次的迭代性编程,第一次就没写出来,后面两次就更别说了。后面几次的迭代性编程难度还比较合适,至少没有像电梯那一阶段一样。总的来说PTA上的习题对于编程能力的提升是有的。
- 然后就是实验。不得不说实验真的是槽点满满。首先先不论实验指导书中一些莫名其妙的要求以及前后矛盾的地方了,不能复制粘贴就是纯纯的费时费力费人。我理解老师这样的用意可能是怕ai完了直接粘贴上去,但是就像老师说的,让一个人一直做同一件重复的事情时会把人逼跳楼一样的,我在idea里费尽心思的把代码写完、把错误改完,任何还得花个两个多小时把这些冗杂的代码全部重新的敲到实验提交系统中去,确实很麻烦。再来说实验指导书里的内容,真的是矛盾的地方很多,希望以后能改进吧。难度总体来说不是很大,除了第五次实验的关于javafx的内容,主要javafx这部分的内容还是通过翻转课堂来进行的,本来就不是很懂会的不是很多,所以这次实验是最难的,花费的时间也是最多的。前面四次实验都还比较ok。
- 最后便是线上与线下课堂。线上课堂怎么说呢,花一点时间课余时间听听还是不错的,当然线上课堂与线下课堂相比最好的一点就是,线上课堂的资源是永久的(虽然后面课程快结束的时候会关闭),所以你在线下课堂中没有学好的话,可以及时地在线上课堂找到你没有学好的部分再仔细地听一听,或许你在线下课堂中地疑问会迎刃而解。再来谈谈线下课堂,总体来说线下课堂老师还是很负责的,一字一句地讲解各个知识点内容,也会结合代码实例来讲解,不至于口说无凭空洞满满。这一部分还是很好的。但翻转课堂怎么说呢,可能是想锻炼学生的自学能力以及合作能力,但往往学生只会着重于自己所讲的那一部分,对于javafx别的部分可能还是似懂非懂的,所以个人觉得翻转课堂不是很合理。
面向对象技术总结
众所周知,java语言作为面向对象编程的代表,其核心在于三大功能:封装、继承以及多态。
- 封装:何为封装?将数据(属性)和行为(方法)捆绑为一个独立的单元(类),并隐藏内部实现细节,仅暴露可控的访问方式就是封装。
封装的核心要点:访问控制修饰符:private、public、protected还有默认。private主要是属性的私有化,改属性仅本类可见,在其它类中无法修改。protected权限会更高一点,仅本包及子类可见。而public是全局可见。默认的话则是同包可见。
封装的优势在于可以隐藏实现细节,防止数据被user修改,保护了数据的安全。
- 继承:何为继承?允许子类继承父类的属性和方法,实现代码复用和层次关系建模就叫继承。继承用关键字extends来实现,继承的特性在于Java中的类只能单继承,即一个类只能继承一个类,但接口可以实现多重继承。一个类继承了另一个类会同时继承该类的非私有属性及方法。
- 多态:何为多态?多态就是父类型引用子类型对象。可以通过方法重写和向上转型来实现多态。
- 抽象类:用abstract修饰的类称为抽象类,抽象类可以包含抽象方法和具体方法。抽象方法也是用abstract修饰的方法,抽象方法没有方法体。抽象类不能被实例化。若一个类继承了一个抽象类,那么这个类必须实现抽象类中的所有抽象方法,除非该类也是抽象类。抽象类还是比较重要的,通过抽象类可以大大提高代码的复用性,子类只需要扩展其特有的方法即可。
- 接口:接口通常用关键字implements来实现,接口定义了对象能做什么,有什么能力,而并非对象是什么。接口的特性在于一个类可以实现多个接口,解决了java中只允许单继承的限制。有一个很重要的关于接口的原则,即接口隔离原则:该原则强调客户端不应该以来它不需要的接口。接口是Java实现抽象、多态和低耦合的核心机制,合理使用接口能使系统具备更好的扩展性和维护性。
- 集合框架:说实话集合框架这一部分我掌握的并不是很好,只知道集合框架由List、Set、Queue和Map等组成。其中最属了解的、用的最多的还是List。List的实现类又有ArrayList、LinkedList等,ArrayList是最常见最常用的。ArrayList是数组列表,它有访问快的特点,且数组列表中的元素可以重复,但是ArrayList删除操作慢,他必须遍历到要删除的元素才能执行删除操作。而LinkedList则相反,访问慢但删除快。至于Set、Map、Queue等真的不是很熟悉。
- 异常处理(Exception):异常处理分为Error(系统错误)、RunTimeException(未检异常)和非RunTimeException(已检异常)。通常用try-catch块来处理异常,使用关键字throws来交给调用方处理。finally适用于必须处理的场景。
- JavaFX:JavaFX提供了最基本的基础控件和布局处理器。基础控件包括Button、Label、TextField等;而布局处理器则包括BoardPane、HBox、VBox等框架,分为上中下左右五个部分。大多数软件基本都是这种结构。JavaFX还提供了多种动画演示,比如TimeLine等。当然Java FX也支持数据绑定,其中属性绑定支持把多种控件绑定在一起。
以上八个大部分,最基础的面向对象编程的三大核心技术封装、继承和多态总的来说掌握的还可以,抽象类和接口在PTA平台作业中也有过很多次的练习了,所以掌握的也还可以。但是集合框架和JavaFX属实掌握的不太行,其中集合框架中除了List以外的其他部分压根没接触没用过,所以可以说是一点也不会。
采坑心得
在最开始进行面向对象编程的时候,在idea里写代码,总会先把所有属性全部写上去,然后用快捷键生成包含了所有属性的构造方法以及所有属性的get/set方法(不管有没有用),但是到后来才发现这种编程方法实在是太愚蠢了,且不论在主方法里new对象的时候到底实际要传几个参数,把所有属性的set/get方法写出来实在是让代码变得太冗余了。自己写的还好,以后进行团队合作的时候属实是对他人不太友好。所以以后在写构造方法的时候,要实际考虑哪些属性是实际有用的,在new对象的时候是切实要传进去的。
第二点就是类的单一职责原则的切身体会。这个原则是真的很重要。以前的我写代码总喜欢把有的没的都放在一两个类中,这一两个类要做的工作太多了,导致一旦出现错误要改的时候,首先很难找到到底错误出现在了哪里,其次是找到了以后,将错误改正确也是一个很大的工程,因为牵扯到了太多有关无关的变量也好属性也好进去了。所以要严格执行类的单一职责原则。
改进与建议
如上所说,实验部分是真的建议需要修改,实验指导书中的内容也可以换一换,实在是太抽象了。再就是线下课程老师可以与学生多来些互动什么的,让课堂更加生动,这样也就不会有大批睡觉的现象了。

浙公网安备 33010602011771号