我对编程的理解

来源:互联网 发布:微信淘口令淘宝打不开 编辑:程序博客网 时间:2024/05/17 07:27

刚刚把<Thinking in Java>中文第四版读完,回过头想想这本书带给我的到底是什么,不经让我思绪万千,所以就想把自己的感触记载下来。

<Thinking in Java>这本书,正如它的中文翻译一样<Java 编程思想>首先,它带给我的是思想方面的转变,不仅仅是编程方面,更多的是对人生的思考。接着才是编程方面的改变。

<Thinking in Java >的作者Bruce Eckel在书的前言中说:“程序设计其实是对复杂性的管理:待解决问题的复杂性,以及用来解决该问题的工具的复杂性。”同样的道理,编程是这样,我们的生活又何尝不是这样呢,我们为什么要发明自行车,汽车...不都是因为走路太慢,我们要去解决这一些问题吗?所以生活中我们不要去害怕问题,不要去逃避问题,而应该是想办法去解决问题。

再来说说面向对象语言的四大基本特性:抽象、封装、继承、多态

抽象性:自我认为就是把我们所需要的有用的信息提取出来,然后告诉我们该去做什么。正如程序中我们所看到的抽象方法,接口等,不都是提供一个方法,具体的实现就由我们自己去完成。就像是我们在开发一个系统的时候,由系统架构师给出开发规范,搭建系统开发的核心构架。正是将有用的信息提取出来,告诉软件工程师该干些什么,具体的实现就由软件工程师自己来完成。这不正是抽象性的具体体现吗?我们自己成长的路上没有系统架构师,所以我们需要自己搞清楚自己该干些什么,然后向着自己心中的方向去奋斗。抽象在整个编程的过程中,有着战略性的指导意义,所以若要给四大特性排名,抽象性当之无愧应该排在第一。

封装性:封装性可以解决的两个问题:(1)让客户端程序员无法触及他们不应该触及的部分;(2)允许设计者可以改变内部的工作方式而不用影响到客户端程序员。封装还可以让代码看起来更加优雅,就像我们所学习的框架一样,它们也是一种封装行的体现。有了封装,可以说使客户端程序员减轻了很多的负担,客户但程序员只需要调用接口就可以了。但是如果想要成为一个优秀的程序员,我们应该理解封装的代码的内部实现,因为这些也是其它程序员写出来的,不一定就是最优的,说不定我们可以找到更好的方法来解决这些问题呢。

继承性:通俗的说,在创建一个类后,另一个新类与它具有相似的功能,需要在创建一个类比较麻烦。所以我们需要以现有的类为基础,复制它,然后通过添加和修改这个副本来创建新类。这时候就出现了继承,这真是一个好的方法(自我感觉)。就像我们在生活中需要去完成一件事的时候,别人有好的方法我们就应该去借鉴,不要自己总是自己从头开始做。我们要学会去“继承”别人的方法。不要自己没有思路,还在那里空想好长时间,到头来还是没有答案,这简直是对时间的浪费,我们要学会在别人的基础上去修改。

多态性:多态通过“做什么”和“怎么做”从另一个角度将接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序。多态的作用则是消除类型之间的耦合关系。多态即为后期绑定:在运行的时候根据对象的类型进行绑定。自我感觉相当于“向上转型”(用父类去创建引用,实例化的却是子类的对象)。

面向对象编程,基本上都是围绕着这四个基本特性去实现的。只要真的搞懂了四个特性(自我感觉自己差的还很远),你的代码应该会是高质量的。我们不能仅限于去写代码,我们应该学会去设计自己的代码,写成一些性能优秀的好代码。就像我们做人一样,不能仅仅存活于世上就可以了,我们应该思考如何去做一个对社会和人类有贡献的人。

1 0
原创粉丝点击