面向对象之我见

  学了差不多两年软件工程了,上学期学了个面向对象的程序设计,这学期软件工程概论里面也看到了面向对象方法学,到底什么是面向对象呢,以前我一直不懂,直到上课老师说“你们学了一两年软件工程了不会还不知道面向对象是什么吧”,听了这句话让我感到有点羞愧难当,想想自己到软件工程专业这一年半确实打了摆子... ...我百度了一下面向对象的概念是(引用百度百科)“系统中一切事物皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。”

  看了这个概念我还是一脸懵逼,这东西确实还是有点晦涩难懂,系统中的一切事物,能让我联想到什么呢,生物学科中有生态系统的概念,人体中有神经系统、消化系统、呼吸系统等等等,拿生态系统来说它里面的一切事物都是对象,那这些对象是什么呢,各种非生物,各种生物,包括人,假设一个人是一个对象,那么他的属性,也就是他的特点,比如有鼻子,有耳朵,有头发... ...操作,是动词,类比来说就应该是人具有的能力,人能干什么,他能走路吃饭睡觉,把这些特点(属性)和能力(操作)集合在一起,就形成了一个类(人类),一个人是人类的里面的一个切实存在东西,类比来说一个人就是人类的一个实例,假设人类的一个实例是一个人,实例关系就应该是人与人之间的关系,比如朋友,亲戚什么的,继承关系就应该类似于人类之间的父子关系,父亲具有的特点,儿子也有,父亲是人,儿子也是人,这就是继承。拿一个“人”类比于面向对象方法学中的将实体抽象为问题域中的对象,所谓的面向对象的方法学也许能解释得通了吧。

  大概就想了这么多,有些地方还是不怎么懂,比如“消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。”如果可以把消息传递类比于人与人之间的交流,但是人与人之间交流不一定只有一种形式,也许可以看做是人与人之间不管以哪种形式交流,它的最终结果也是传递了信息,那这样也可以讲得通。

  有些地方写的不好,欢迎指教,不要笑我~。