目录
⚽前言
🏐面向对象思想
起源
现实
编程联系
面向对象思想总结
🏀面向对象开发方法
开发中的名词:
名词间的关系
名词具体阐释
一、对象
二、消息和方法:
前言
本文所有知识点和内容均来自山东大学潘丽老师及山东大学教研组PPT。
面向对象思想
起源
面向对象思想起源于人类生活中解决问题的传统思维方式。也就是说面向对象思想的本质就是让编程解决问题变得和人类在现实世界中解决问题的方式变得非常相近。
总之,
面向对象思想就是人类现实中解决问题的本质思想
现实
从图中我们可以总结出一下几个点:
一、我们会去寻找代理人帮助我们解决生活中的问题。图中Chris想要在cityA中买花,于是他找到了代理人Fred花店,Fred将为他提供花。
二、代理人可以寻找其他代理人。Fred花店的花也不是从头到尾由店主自己种植的,他需要下属、花卉批发商、快递员帮他把花送到Fred花店中。
编程联系
此处总结的思想和现实中一一对应:
一、面向对象编程中,我们想要解决一个问题也不再是直接写一个函数或者写一段代码单纯为了这个功能。而是写一个对象,让这个对象能够调用一个函数,而这个函数能够帮助我们解决这个问题。Fred花店就是一个对象,其卖花功能就是一个函数,这个函数能够解决我们的一个需求。
二、面向对象编程中,我们调用一个对象的一个函数时,这个函数的功能实现也可能调用了其他对象的函数功能。例如Fred花店对象的卖花功能就需要先调用花卉批发商的卖花函数、下属摆花售卖函数以及快递员送花到店里的函数,然后Fred花店卖花的功能才能够实现。
面向对象思想总结
面向对象开发方法
开发方法就是指一种编程开发模型:该模型按照人们通常的思维方式建立问题领域的模型,设计出尽可能自然的表示求解方法的软件。
开发中的名词:
一、类
二、对象
三、属性
四、操作
名词间的关系
一、类与对象的关系
类是一种抽象的概念,在现实世界中是找不到具体实体的;对象是类的具体实例 ,是由类具体化从所产生的,在现实世界中是存在的,其核心的属性是有生成对象对应的类所决定的。
举个例子:山东大学学生是一个类,由山东大学学生这个类生成的张三就是一个具体的对象,而这个对象所有的核心属性是由山东大学学生这个类所决定的。
二、属性、操作与对象的关系
特别补充:对象的属性和操作是由对象去具体拥有且操作的,但是其根本来源是生成该对象的类
名词具体阐释
一、对象
对象性质:
1、封装性:信息隐藏
2、自治性:主动数据(每个对象都有总结的数据且能独立进行操作)
3、通信性:并发(不同对象之间能够相互调用,合作完成一个功能)
4、暂存性:作用域
5、永久性:文档串行化(数据库的一种替代方案,文档对象的串行化是指对象的持续性,即对象可以将其当前状态,由其成员变量的值表示,写入到永久性存储体(通常是指磁盘)中。下次则可以从永久性存储体中读取对象的状态,从而重建对象。这种对象的保存和恢复的过程称为串行化)
基本思想:
要点一在上文中已经得到阐释,这里不再赘述。
要点二的本质就是上文所说的对象是由类生成的具体实例,其核心属性由类所决定。
要点三引出了新的一个名词的“消息”其本质就是上面提到的操作的接受对象。
二、消息和方法:
一个操作的完成依赖于消息以及消息的接收器——对象。只有对象存在且接受到了正确的消息,一个操作才能正确完成。
例如上面提到的买花人只有到达Fred花店并正确地告诉店主需要购买什么花后,店主才能够把他所需要地花交到它地手中。店主有卖花这个方法,同时接受到了买花人提供给店主买什么花的信息,所以最终这个操作才得以完成。