面向对象的基本概念

叙述之前先来做道题:如何不用第三变量来交换两个数的值。

通过异或,我们可以得出 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)。


 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值