在这个软工的视频中一直有强调面向对象的程序设计,而且这个概念从开始学习VB就一直伴随着我们,并且在以后学习java这也是很重要的一部分,但是对于这个内容一直处于似懂未懂的状态,最近开始了UML视频再加上C++学习的深入,对这个概念也有了更深入的理解。


疑问一 —— 何为面向对象?何为对象




    面向对象的程序设计:为了能更加直接地描述客观世界中存在的事务以及它们之间的关系。(是不是难以理解。。)这个困难的东西先挂会,一会解答。何为对象?对象:客观现实世界在人脑中的反映,作为一种概念而存在,通俗点举个例子,就是现实世界真实存在的事务,有形的如一个人,无形的如一份计划。所有的事物都是对象,对象就是描述客观事物的一个实体。面向对象的程序设计:就是为了更简单的描述实体,和实体之间的联系。例如,每个人都作为一个实体,利用机器语言描述人的一些特征,以及人与人之间的联系。


疑问二 —— 面向对象的基本特征

    类:从现实世界中存在的事物(对象)出发来设计,将软件中的涉及的各种对象,寻找彼此之间的联系,并且可以相互通信的对象集合。类从现实生活中就是对一些有相同特征的事物抽象,得到一个集合,例如:用来包装或装载物品统称为容器。容器就是现实生活中的一个类。类对其所包含的所有对象提供了抽象的描述,主要包括属性和方法。属性就是对象本身的特点,例如一个盒子,其属于容器的一个对象,但是盒子的颜色,以及形状就是它的属性。方法就是某种操作行为,还是盒子为例,可以做装饰品,可以用来盛放物品。


    封装:一个是为了把对象的属性和服务结合成一个独立的系统单位,二是尽可能隐藏对象的内部细节。例如手机,就是封装对象,用户只需要使用手机的界面就可以完成各项功能,但是至于里面如何发送短信,转换信号,以及是怎样显示在屏幕上用户都不需要知道。他的好处:简化对象的使用,只需要为用户提供接口,可以通过封装过程,实现代码的重用(这也就是继承关系),在使用的过程只需要调用接口就可以。


    继承:是指特殊类的对象拥有其一般类的全部属性和服务,即称为特殊类对一般类的继承。一般类称为基类或父类,特殊类称为派生类或子类。例如在一个汽车运输管理系统中,认识到汽车的基本特征之后,但在分析卡车的时候,卡车也属于汽车的一种,所以卡车继承了汽车的全部一般特征,只需要关系卡车独有的特点。


    多态:以继承为基础,在一般类中定义的属性或行为,被特殊类继承之后,表现出不同的行为。最简单的说就是一龙生九子,九子各不同。例如一般类“几何图形”中定义一个“绘图”的行为,但是在几何图形的基础上有一个特殊的类,“三角形”,“矩形”这两个派生类都有绘图这个功能,但是画出的图形不一样。它的好处就是通过集成不断扩充类族,保证类族和外部对象接口的稳定,提高程序的稳定性,维护性,可重用性,从而提高质量。




【总结】

    在UML视频特意用了两集视频来讲述的面向对象的程序设计,而且在C++中学习过程,开始就是先搞清面向对象的程序设计的概念,足见这些概念的重要性,虽然自己的学疏才浅,但是慢慢学习,不断升华!


 整篇博文中例子以及一些概念解释理解的不到位,还是各位大神及时指出,不胜感激!