或许是以前过程化思维太重了,总是把面向对象,在头脑里解释成面向过程的样子。曾经没有深入思考过,便以为自己已经略知大概。直到昨日听了米老师的课。让我有了启发而想要深入思考一下这个问题。
首先,面向对象是什么?
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
简单的定义,但是有很深的内涵需要理解。
面向对象的三大特征:封装、继承、多态
面向对象的基础:抽象
抽象:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程
在课程中要求回答抽象的定义的时候,都能回答出定义的意思,但是没能回答出来老师的问题:“如何找到事物的共同点?”
看来之前对抽象的定义仅仅理解到了字面意思。想要在这次和老师深入学习,知道弄懂它的深刻含义,能够回答这个问题,最新的理解将会在后续更新。
现有理解:以打水这件事举例子,关注点在于打水这件事,就是说有“打水”这个方法,同时应该还有参与者(打水人、售水人),材料(水),工具(水桶),这当做三个类,参与者、材料和水就是对括号里具体内容的抽象,抽象成参与者、材料和工具,需要则new一个对应类的对象,不需要关注这个对象的内部逻辑。