OOP思想浅谈

07年11月27号在校内举办了第一次技术讲座,主题是Java now and future.和以往的同主题的讲座不同,我在讲座里面着重讲了一下我对OOP思想的理解并对比了Java和C++的区别,这也是很多编程爱好者所津津乐道的话题,至于大家喜欢哪种编程语言我个人觉得主要决定于自己的性格,当初喜欢Java也是因为其跨平台的特点,和外向兴趣广泛的我一样,能让生活充满更多的乐趣和颜色。

    下面浅谈下我对OOP思想的理解,OOP思想中很重要的有五点,类,对象,还有面向对象的三大特征:继承,多态和封装。

    类:对现实世界事物的抽象表示,包括事物的状态信息(成员变量)和行为信息(成员方法)。我们要让我们的计算机程序设计更有意思,也更有逻辑性,则我们的程序中对事物的描叙就必须符合真实情况,同时符合人类的思维习惯。因此,我们如果在计算中要描叙人这个事物,也是一类事物,我们就必须把该事物的所有特点包含进来,用成员变量描叙人的基本属性,如:身高,体重,年龄,性别等。这样就可以描叙一个“静态”的人了,所谓静态的意思也就是该人并不参与任何社会活动,没有任何行为。但是这样并不符合现实意义,那样我们必须为人添上行为,让他参加社会活动有自己的行为。所以我们需要用成员方法来描叙人的活动,如:吃饭,洗澡,睡觉等。

    对象:对抽象事物的具体表示,使其具有自身的特点。类好比一个大的集合,里面的元素都有共同的特点,但是比较每个元素又可以发现每个有其自身的特点,对象就是这样,它是一个类的具体化,也是实例化,类是泛指,而对象是特指。虽然人都有身高,体重,年龄,同时有行为有吃饭,洗澡,睡觉等,但是当具体到某个人的时候就会有不同,例如:老人和小孩的年龄就有不同,所以,从类到对象是我们把现实事物进行计算机描叙的过程,同时也是一个从抽象到具体的过程,这很符合我们的真实思维逻辑。

    下面浅谈一下面向对象的三大特征的基本思想。

    多态:用一种解决方案来解决对一类问题,对于不同的事物解决途径和结果不同。在C++中实现多态性有三种方法,分别是:虚函数,函数重载和运算符重载。这三种方法大家都可以看到我们解决问题的初衷是一样的,都是利用同名函数,同名的运算符号,这抽象出来也就是解决问题的方法,但是对于不同的事物的反应却是不同的,例如:当用一个getPadNumber()方法来得到普通自行车和双人自行车的坐垫数量的时候,返回的结果是一个和两个,这就是具体的事物返回的结果不同。

    继承:让抽象出来的事物具有本应该具有的联系。我们能用类来描叙一个抽象的事物,同时能用对象来描叙具体的事物,但是这些事物都是独立的,彼此之间没有应该有的联系,这样的孤立设计并不符合现实逻辑,让事物之间的联系得到描叙,我们就需要继承,例如:发明自行车的人并不是一开始就发明了多人自行车,这些都是从双轮自行车演变和发展而来,但是他们都有共同的特点,有轮子,有车架子,等等。让我们用继承的关系把这两个现实的抽象联系起来,这样我们就能设计出不孤立的类,而是和其他类有联系的类。

    封装:让抽象的事物保护自身的状态,防止非其他事物对其进行错误的状态改变操作。我们抽象完一个事物后,可能在特定的条件下,其本身的状态需要改变,但是这个改变并允许其他的事物来进行,这样的改变只允许这个事物认同的操作域来进行,可以是该事物本身,也可以是它信任的其他事物。这样我们就能对我们抽象完的每个事物进行自身数据的保护。

    以上是我个人对OOP思想的一些理解,希望大家能雅正。  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值