您的位置:首页 > 其它

面向对象的基本概念

2011-09-24 16:04 253 查看
叙述之前先来做道题:如何不用第三变量来交换两个数的值。

通过异或,我们可以得出 a=a^b^b, 所以假设a,b两个变量, 那么 1 a=a^b, 2 b=a^b, 3 a=a^b。如果只能用与或非的话,我们已知a^b=(a+b)*(!a+!b)。

面向对象和面向过程的区别:

以前学习C语言的时候,遇到问题,解决问题就是靠步骤来实现。主体就是函数,通过调用每一个函数来实现解决一个问题的步骤。

再学习面向对象的时候,我们需要通过实体中抽象出一个个对象。每一个对象实现一种功能或者规则。

举个列子,比如一个迷宫问题, 在面向过程中,第一步,绘制一个迷宫,第二步,判断方向,第三步,移动,第四步,判断是否到头,是否无路可走,第五步 ,前进或者后退。 第六步 重复以上过程直到走出迷宫。可见解决一个问题需要一个个的具体的步骤来实现。但是如果要添加一个新的功能或者换一张新的迷宫图,我们需要做出的改动还不如重新写一次程序。

在面向对象中, 我们需要抽象出一个个实体的对象,比如迷宫地图的对象,人物的走路和选择方向的规则。正如以上所见,我们回头要修改这个程序的话,所花的代价是很少的。比如让人物可以一次走三步,我们只要修改人物走路的规则(方法)就可以,如果是面向过程的,每一个步骤里都含有走路的过程,我们需要修改的地方就太多了。

对象: 面向对象中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。

类:把事物进行分门别类的划分,是人们在日常生活中为了达到某些要求而经常采用的思维方式。分类所依据的原则就是抽象,忽略那些我们不关心的特点,只注意其中一些的特征,从而找出事物的共性,把具有共同性质的事物划分成一类。面向对象中的类,是具有相同属性和服务的一组对象的集合。

封装:就是把对象的属性和服务结合成一个独立的系统单位,并尽可能的隐蔽对象的内部细节。

继承:特殊类(子类)的对象拥有其一般类(父类)的全部属性与服务,称作特殊类与一般类的继承。

多态性:多态性是指在一般类(父类)中定义的属性或者行为,被特殊类(子类)继承后,可以具有不同的数据类型和表现出不同的行为。

重载(Overloading) : 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时

存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。(返回类型不能区别重载函数,参数的个数和类型!)

重写(Overriding):父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某

           

方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  overloading 生活 语言 c