面向对象到底是什么?

解决方案 »

  1.   

    google一下不就知道了
    简单的说,面向对象 (Oriented Object) 与以前面向过程相比较最大的好处就是编程的对象可以继承、扩展(多态)。
    不用重复造轮子,而且易于维护。
      

  2.   

    刚开始学C语言时,最初只能接受 整型,实型,字符串,布尔型。。 因为这些很好理解啊。。接着,接触了数组,还是比较好理解的。毕竟要你定义几十个同类型的变量,也比较麻烦,,,后来,接触到了指针,指针数组,就有点头晕了,特别是“指向指针的指针”,,,时间长了,也能了解一些慢慢地,就学到了“结构体”,举“学生信息”为例,学生编号,姓名,年级等等到现在,还是采用的面向过程的思维方式,如果仅采用这些东西,去解决上面提到的取款机的问题,会很复杂的。从面向过程,转向面向对象,确实有点难转弯。。特别是习惯了用TC写代码。。谈到面向对象,肯定会提到“类”,理解了“类”,就比较好理解“面向对象”了。。
    要理解“类”,就得理解“封装”。为什么要“封装”呢?其实“封装”,就是为了方便。。
    其实“结构体”就包含了“封装”,比如,它把一个学生的信息(学号,姓名,年级)全部放在了一地起,定义一个学生的变量,就可以很简单的根据这个变量找到它的姓名,学号,这点应该好理解吧。。单靠“结构体”还不能很好地解决我们上面的“取款机”的问题。因为根据结构体,我们最多只能把“卡号”,“持卡人姓名”,“卡余额”等信息集成在一块。。对于“取款”的动做,还需要用其它的函数来处理。。
    而本质上,“取款”主要还是与“银行卡信息”打交道
    为什么,我们不把“取款”和“卡信息”放在一块呢?也就是说:我们在一个“很大的结构体”里,不但包含“卡信息”,把“对卡的操作”,如“取款”,“存款”,“修改密码”也放在一块,多方便啊。。于是,我们接触到了“类”,不但封装了“属性”,还封装了“操作”。。
    了解到这里,就需要了解,成员的可见性,如“公开”,“私有”,“保护”,刚学C++时,很难理解为什么会有那么多的“get XXX;   set XXX”。。如果采用类,那么,“取款机”问题,我们就可以这么简单地操作:
    取款机.inputCard;         //插卡操作
    取款机.CheckCard:boolean;  //判断卡是否合法
    取款机.CheckPassWord(PassWord: string): boolean;  //判断密码是否正确。。
    取款机.GetMoney(needMoney: integer): boolean;     //取款。。本质上,与  某学生.StudentID 差不多的。。
      

  3.   

    oop与其说是一种编程方式不如说是一种信仰
      

  4.   

    学学 UML,对面向对象理解就深了!