Java面向对象课程总结及感想
历经一个学期的学习,我从如同这一页word的白纸,一笔一字的填满了Java知识。
一开始学习的时候,还是有些忐忑,毕竟C语言都还没能完全掌握,又学习一门新的语言,那何时能将这些编程语言掌握?随着学习内容的深入,我发现我的担心是多余的,每门计算机语言都是相通的,我对python也有一些接触,发现各大编程语言有着许多的共同之处。首先,它们的逻辑无非就是条件和循环,并且结合数据结构以及加减运算等逻辑编织而成可供计算机运行的程序,它们所不同的是各自的语法和规则,以及侧重点的不同。
Java的语法和规则各式各样,比如:输入输出的语法便和C语言以及python有着很大的区别,如下图。

Java的输入输出比较复杂,甚至还要调用类
,我不明白这门语言的创造者为什么要这么做,像C语言scanf("%d",&a)和 printf("%d",a)这样简单不是很好吗?不过,这也不是我可以随意揣测评价的,这么做必然不会无的放矢。
Java程序是以类的形式存在,这点我倒是比较能理解,和C语言不同,它侧重于复用性,老师也在课堂中多次强调复用这一特点。为实现复用性,Java有着三大特性,五大原则。所谓三大特性:封装,多态,继承。我解释一下:
封装: 一个类封装了数据以及操作数据的代码逻辑体。定义了数据的可访问属性
继承 : 可以让一个类型获取另外一个类型的属性的方式。分为实现继承和接口继承
多态 : 类实例的一个方法在不同情形下有不同的表现形式,即不同的外在行为。使具 有不同的内部结构的对象可以共享相同的外部接口。
五大原则:
单一功能原则 : 每个类型(包括接口和抽象)功能要求单一,只负责一件事情。
开放封闭原则:一个软件实体应该对扩展开发,对修改关闭。可扩展但是不可更改
替换原则(里氏代换原则):子类能够替换父类,出现在父类能够出现的任何地方
依赖原则:具体依赖抽象,上层依赖下层。核心思想是面向接口编程。
接口分离原则:模块间要通过具体接口分离开,而不是通过类强耦合。例如A类对B 类的依赖,可以抽象接口I,B实现I,A类依赖I来实现。但是抽象 接口必须功能最小化(与单一功能原则有点不谋而合)。
这几大原则我也不是特别了解,我所掌握的也就只有单一职责原则和开放与封闭原则,其他原则略有了解,但是不熟悉。我也讲讲我对单一职责原则和开放与封闭原则的理解:我所理解的单一职责原则是每个类只做自己本分的事,那些越俎代庖的勾当不能干。比如,动物有吃的动作,植物有光合作用的动作,那么动物类就有吃的方法,而不能定义光合作用的方法,反之,植物也一样。开放与封闭原则我只将它的作用,就是用抽象类框架,实现类的扩展,仅此而已,这是核心内容。
虽然面向对象编程写起来有些复杂,通常需要将一个问题分解为几个类,不如面向过程来的快,但所谓放长线掉大鱼,Java面向对象是为大工程而生的,当一个工程越是复杂,就越能体现Java面向对象的优越性。相比于面向过程的“铁板一块”,面向对象对一些错误的把控能力更为自如,面向过程所有功能连为一体,耦合性很高,一些小错误都能造成整个程序瘫痪;面向对象就算某个类中出现问题,也不会影响其他类,对错误的修改难度也更小,更何况Java还有强大的异常处理模块。
除了以上的知识点和内容,我还学到了Java中的数据结构,基础的栈,队列和链表,以及一些特殊的Map,ArryList等数据结构。

比起在C语言中,数据结构在Java中的应用更为简单,可以调用现有的包,如Java.util.Map,Java.util.ArrayList,Java.util.List等根据程序需要选择不同的数据结构可以有效的简化代码。
不仅如此,在Java的学习过程中我还接触到了新的领域——界面。调用javaFX包就能对界面进行编程,除了对包中各个类的理解外,还需要加深对界面结构的理解:

我对界面这一领域比较感兴趣,我觉得界面特别神奇,一段单一枯燥得字符文字,可以转化为美丽的图案。

有一说一,这个图案是真的漂亮,在课堂上看到老师编写出这样的界面我就来了兴趣,全神贯注的听老师讲解,心中暗自吐槽,大叫“死狗咦!!!”。但是我在这方面的训练还没有到位,还有些不熟悉,不能随心所欲的编织图案。
十几周的时间,老师徐徐渐进,从最基础类的定义到封装,继承,多态和几个重要的原则最后到的界面,在我的脑中一步步绘制Java的蓝图。这还是最基础的知识,最重要的是思想的改变,我的编程思想也从学习C语言形成的面向过程到面向对象的转变。我的编程素养也有很大的提高,从以前只会在main方法中乱写一通,到现在会分析问题,将问题分解成几个类,进行封装。再通过继承和多态实现每个类的功能。这源于对自己的严格要求,但也归功于作业的引导,回顾这几次PTA的大作业,我便发现老师的“别有用心”。一开始的作业甚至连面向对象的程序都不是,纯属为面向过程,在后一次是让我们试着编写类,慢慢的逐步引导,继承,多态也随着作业的进行逐步出现。甚至之前还有UNL类图,给予我们借鉴,到后面没有类图,让我们自主思考,分析解剖问题。总而言之,我非常感谢老师的辛勤教导和引导。将这终身受益的技能传授给我,我个人也是很喜欢编程,每次编程的时候都有种沉醉的感觉,动不动就一上午或者一下五就没了,所谓“快乐的时光总是过得飞快的”,我是真心喜欢编程的感觉!

浙公网安备 33010602011771号