给自己的备忘录——面向对象

给自己的备忘录

                              ——面向对象

面向对象是现在最流行,也是最高效的编程方法,尽管一些计算机诞生之初的大牛说面向对象让编程变得毫无艺术性,但是,我们不得不承认,有时候高效的生产力比艺术性来得更要实在。

从前,程序员在编程的时候总要考虑计算机的感受,这样写计算机效率会不会高点是很多程序员要问的。而现在,计算机的能力已经强到了不再娇气甚至是彪悍的地步,所以,程序员们开始为自己着想了,他们想着办法“偷懒”,于是,越来越高效的编程方法诞生了。高效的方法让程序员更多关心内容而不是计算机的感受,让科技回到了人的身边。而面向对象,就是这样一种方法。

相对与过去面向过程的计算机思维,面向对象更像是人的思维。所谓面向对象,就是将需要解决的问题抽象为“对象”。每一个事物都是一个对象,对象和对象之间拥有较低的耦合,所以很少出现面向过程编程里的牵一发而动全身的现象。在面向过程编程里,修改程序是一件很恐怖的事情,而在面向对象里,程序各部分之间相对独立,即使更改一个部分,对程序其他部分影响也不大。在修改,升级程序时,面向对象大大缩短了调试的时间。

面向对象中代码的重用率非常高,这使得开发时能用相同的代码实现不同的功能,大大缩短了开发周期,使得大规模的程序实现成为可能。

对象和类

既然是面向对象,那么对象一定是最主要的。有了对象就有了类。类定义了一类对象(事物),而对象则是类的具体化体现。人是一个类,他规定了人的属性,而我则属于人这个类下的一个对象,也就是说“我是一个人”“我具有人的属性”“我可以完成人所应该有的技能”。总结一下类和对象的关系,就是类是对象的抽象,对象是类的实例。在目前大部分的面向对象的编程语言中(指完全面向对象的语言),不管是变量还是方法,都必须依托于对象存在,不要试图具反例,因为这是语言设计者设计的,这种方式更加具有逻辑性,这就是所说的一切都是对象。也就是说,当你调用一个方法或者属性的时候,你都无形之中调用了一个对象,尽管有时候你根本没有意识到,这是语言设计者为了写法简便而设计的,显然,这并不利于理解。一切都是对象,结合这句话,就很容易弄清楚不少了令人困惑的问题,比如,thissuper指针指向得到底是什么?他们指向的不是某个方法和属性,而是一个对象,this指向本类的对象,super指向父类的对象。不过,虽然标榜一切都是对象,但是,你会发现,在传统编译语言里,还存在一些东西并不是对象,这就是后话了。

继承

类和对象实际上是分类的学问,生物学家将生物分为门,纲,目,科,属,种,一层一层,逐渐详细,我们不妨把门,纲,目,科,属变成我们面向对象里的类,而把种变成对象。这里,我们先不管这个对象,先讨论一些这几个类,显然,这几个类是由抽象到具体,由粗略到详细的。他们之间存在的包含关系。这里,就引出了继承的概念。有时候,我们需要把一个类具体化一些,又不想让他具体到对象那种程度,我们就创建一个所谓的子类,让这个子类去继承父类,于是这个子类就具有了父类的属性和方法,在这个基础上,我们再为子类规定一些属性和方法,使其更加具体,这就像纲继承了门,拥有的门的属性还新加入了更多新的属性,让其更加具体。实际上,继承就是让事物逐渐具体化的一种有效方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值