Day28--什么是面向对象
Day28--什么是面向对象
面向过程和面向对象的抽象理解:
面向过程思想
步骤清晰简单: 第一步做什么, 第二步做什么.....
面对过程适合处理一些较为简单的问题
面向对象思想
物以类聚, 分类的思维模式, 思考问题首先会解决问题需要哪些分类, 然后对这些分类进 行单独思考。最后, 才对某个分类下的细节进行面向过程的思索。
面向对象适合处理复杂的问题: 适合处理需要多人协作的问题!
面向过程和面向对象的联系:
对描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是, 具体到微观操作, 仍然需要面向过程的思路去处理。
举例:面向过程和面向对象的生动理解
面向过程
- 思路描述
- 面向过程的方式会把做饭这个任务分解成一系列的步骤,一步一步地去执行。
- 具体步骤
- 第一步:去市场买菜。确定要做的菜需要哪些食材,然后去市场挑选新鲜的食材,比如要做西红柿炒蛋,就需要买西红柿和鸡蛋。
- 第二步:准备食材。回到家后,把买回来的西红柿清洗干净,切成小块;把鸡蛋打到碗里,用筷子搅拌均匀。
- 第三步:烹饪。先打开炉灶,放上锅,倒入适量的油,等油热了以后,先把鸡蛋液倒入锅中炒熟盛出,再把西红柿块倒入锅中翻炒,加入适量的盐和糖,等西红柿出汁后,把炒好的鸡蛋再倒回锅中,和西红柿一起翻炒均匀。
- 第四步:装盘。把炒好的西红柿炒蛋盛到盘子里,可以根据个人喜好撒上一些葱花作为装饰。
面向对象
- 思路描述
- 面向对象的方式会把与做饭相关的事物看成不同的对象,每个对象都有自己的属性和行为。
- 对象分析
- 厨师对象:厨师是一个具有做饭技能的对象。他有自己的技能属性,比如擅长炒菜、会做西餐等。他的行为就是做饭,根据不同的菜谱要求,利用各种食材和厨具来制作食物。
- 食材对象:西红柿和鸡蛋都是食材对象。它们有自己的属性,比如西红柿的颜色、形状、新鲜度;鸡蛋的大小、重量、新鲜度等。它们的行为就是被厨师处理,比如被清洗、被切割、被烹饪等。
- 厨具对象:锅、炉灶、筷子、碗等都是厨具对象。它们有自己的属性,比如锅的大小、材质;炉灶的火力大小等。它们的行为就是辅助厨师完成烹饪过程,比如锅用来炒菜、炉灶提供热量、筷子用来搅拌鸡蛋、碗用来装食材等。
通过这个例子可以看出,面向过程更侧重于按顺序执行一系列的操作步骤来完成任务;而面向对象则是从对象的角度出发,考虑对象的属性和行为以及它们之间的相互关系来完成任务。
什么是面向过程
面向对象编程(Object - Oriented Programming, OOP)
面向对象编程的本质就是:以类的方式组织代码: 以对象的组织(封装)数据。
抽象:将数据中相同类型的抽取出来,抽像
三大特性:
- 封装
- 继承 子类 父类 子类继承父类
- 多态
从认识论角度考虑是先有对象后有类。对象, 是具体的事物。类, 是抽象的, 是对对象的抽身
从代码运行角度考虑是先有类后有对象。类是代替对象的模板。
小的理解:
从认识论角度考虑是先有对象后有类。:先有人,才有对人的分类:男、女;律师、教师、学生......
从代码运行角度考虑是先有类后有对象:根据已有的类创建对象
本节,抽象的概念过多,但是在以后的学习中会慢慢理解!!!!!!!