摘要:今天浅聊一下面向对象思想,我认为理解面向对象思想对新手来说是很重要的,面向对象思想是c++编程的灵魂。那么什么是面向对象呢?首先要理解对象是什么。在我们的日常生活中,一个苹果,一支笔,一辆车都可以称为一个对象。再具体一点,小明的车就是一个实...
今天浅聊一下面向对象思想,我认为理解面向对象思想对新手来说是很重要的,面向对象思想是c++编程的灵魂。
那么什么是面向对象呢?首先要理解对象是什么。在我们的日常生活中,一个苹果,一支笔,一辆车都可以称为一个对象。再具体一点,小明的车就是一个实际存在的对象。假设小明正在开他的车,我想知道现在车速是多少,小明只需要看一下车速表就可以告诉我车速是多少了。这里的车速就是车的一种状态或者一种属性,而车速表就是车对外的一个接口,该接口可以返回车速的值。
小明的车是一个整体,一个系统,也就是一个对象。该对象由属性和方法组成,属性一般表示对象的某些性质或状态,方法用来进行逻辑处理以及向外提供接口。
那么怎么用c++表示一个对象呢,我想大家都应该知道了,一个对象就是一个类。比如小明的车可以定义如下:
图1 小明的车的类定义
如图1所示,_speed, _weight, _wheelNumber都是车的属性,而 Speed(), Weight()和WheelNumber()都是车的方法也是对外的接口。由此,在c++中也可以说一个对象是由它的属性和方法组成的。
我们在使用该对象的时候,就是我前面提到的对象实例化。我们获取车速是通过车的接口获得的,通过车本身的接口获取车的速度,车的速度是在车这个对象中保存的。这里也体现了c++的一条重要性质,那就是封装,我们将对象的状态封装到对像内部,通过开放的接口来获取对象状态。面向对象编程可以使一个对象保存自己的状态而无需使用额外的存储空间,在仿函数中你更能看到其优越性,这是后话。
面向对象也就是以对象的思维去思考和编程,也许理解起来很简单,但用起来总是很难,这就要求你在实践不断地去总结锤炼,不断地增强面向对象思维。
今天就聊到这里,希望大家多多批评指正,共同进步,顺便点一下关注,谢谢大家。