Java编程思想 第一章:对象导论

这一章作者站在更高的角度(java语言编写者的视角)来介绍了Java语言产生的原因,以及它的优缺点。在Java出现之前,有很多编程语言(比如C,由于我也就对C语言比较熟悉,其他编程语言很少听过,下面主要把Java和C作比较),这些编程语言都有一个特点:就是这些语言设计的初衷都还是围绕机器语言的,换句话说,由于起初写程序都用机器语言写,每次写完去执行时都要拖着长长的纸带去,再后来出现了汇编语言,稍微轻松了一点。一些大佬们为了进一步减少编码的工作量,C语言诞生了,它也被称作为高级语言,因为它和汇编语言相比已经优秀太多了,不用再写那么多冗长的代码,更加贴近于人类的语言了,代码不再那么让人难以看懂了。但是说到底,C语言更多地还是以计算机的思想来设计的,它算是人类语言和机器语言之间一个重要的桥梁了。但这还不够,OOP这个思想之前就已经出现过,是Java真正让它发扬光大。
我感觉它最伟大的一点就是Java的诞生使得在自然界的一切都能够在Java中得到映射,自然界中就可以知道一切都是以对象为基础的,比如,一棵树,一座房子等等,它都能够在Java中用一个类对应起来,就像数据库课上老师所说的,数据库的基本单位是实体,自然界的一切实体都可以在数据库中映射,现在想想这两个有着异曲同工之处。Java设计之处就是遵循这以对象为基本单位来进行程序的编写,而不再是每一个程序对应者一个事件的过程,这和我们的生活更加相似,我们都是一个个个体,在Java中刚好对应一个有一个实例,自然界的一切实体都能抽象为一个类,这也使得Java更加地让人们容易理解,它和机器语言之间的转换,Java自己都帮我们做好了,我们可以更关注自己要解决的问题了,这样效率也会更高,自然而然就慢慢被更多人熟知了。
就像我们上面所说的,我们从Java本身已经看不到过程式语言的影子了,因为它做的太好了,它已经帮我们完完全全的封装了起来,问题也就随之产生了,中间代码裹了那么多层,代码的执行效率的低下也就显现出来了。在刚开始的时候它的执行效率和c语言相比差了几十倍,但现在,虽然已经好了很多了,但它们之间仍然存在着不可逾越的鸿沟,你既想它的执行效率很高,又不想自己多下点功夫,不可能的。庆幸的是现在的cpu执行频率很高,我们在执行大部分程序时不会有太多的延迟感觉到,但如果你想追求更高的性能,Java就或许不适合你了。下面介绍了一下印象比较深刻的地方,后面有一些小章节(异常处理、并发编程、Java与Internet)没有提到,主要是因为之前没有接触过,不太了解,看了一遍也没太深的印象就没说,但第一章还是建议大家去读一读,先在脑海里建立一个oop语言的基本轮廓。

万物皆为对象

将对象视为奇特的变量,它可以存储对象,除此之外,你还可以要求它在自身上执行操作。理论上讲,你可以抽取求解问题的任何概念化构件,将其表示为程序中的对象。对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据(它给出了该对象的状态,比如一个人的眼睛、鼻子、耳朵等等)和方法(它们产生行为,比如一个人会吃饭睡觉打篮球等等),并且每一个对象都可以唯一地与其他对象区分开,具体来说,就是每一个对象在内存中都有一个唯一的地址(比如中国公民都有一个唯一的身份证号)。
这里的执行操作是表现为每个对象都有一个接口,通过接口来向外提供服务(但这里的接口只是对象的一个子集,比如每个人总有自己的一些小秘密),一个人要读书,怎么读,别人并不知道,别人知道的只是这个人会读书,所以对象中的提供的每个服务(即方法)对外是隐藏的)。

单继承结构

Java里面往往不同的对象中会有一部分相同的方法或者属性,那么还要重新创建一个新类是很麻烦的,于是就出现了继承,一个类可以继承另一个类的属性和方法,这样只需要再添加一些自己特有的属性或者方法就行了。我们都知道C++里面的类是可以多继承的,所以在c++考试中就会让我们写出有多继承类的各个方法的执行情况,这个时候你需要把整个类的继承树画出来,再来一一分析执行顺序,很是麻烦。在java中则不需要担心这个问题,因为Java中只有单继承,多继承是不允许的,而且所有的OOP语言(除了C++)中的所有的类都继承于单一的类,就是Object。单继承类会有很多好处,这个在以后的章节会有详细讲到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值