1.面向对象和基于对象
基于对象:IDE系统提供了很多对象供你使用,但你不可以派生出自己的类来,只能使用系统已经提供的类来创建对象,比如:VB6.0,JavaScript
面向对象:系统提供了一些类,但考虑到不够使用,允许你自己派生/定义自己的类,利用多态与虚函数,通过基类指针指向派生类对象,实现通用函数就像使用系统提供的类一样来使用自己的类,如:C /Delphi/C#/Java等等
“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)却一不可,通常“基于对象”使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说“基于对象”没有继承的特点,而“多态”是表示为父类类型的子类对象实例,没有了继承的概念也就无从谈论“多态”。
“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象实现了“继承和多态”,而“基于对象”没有实现这些
2.面向对象
(一),为什么需要面向对象
生活中所有的东西都是一个个的对象(万物皆对象),为了描述他们方便,我们就用面向对象的方法来解决
(二),什么是面向对象编程
根据具体的实际生活,设计相对应的类或对象出来,按照生活中的流程或逻辑来操作程序中的类或对象,这样更直观更方便。
参考:
https://blog.csdn.net/lucas_0817/article/details/79370118
面向对象:是从"对象"出发去思考的,面向对象认为事情都能够抽象的,抽象是什么?在小学语文中,那称之为总结,提炼(把想要归类的东西,提取一些共同的属性和方法(其实就是特征,以及行为))
例如:
抽取 人(特征:眼,耳,口,鼻 行为:睡觉,吃饭,刷牙)
对象: 男人 女人
那么面向对象有什么好处?为什么会出来这种思维呢?
那要提到面向过程了
面向过程:就是从过程出发,去思考问题的.
例如我想要 鲜榨橙汁.面对过程思维去编写程序的话就是---
榨橙汁 [1.先要有橙子 2,把橙子放进去榨汁机,3找杯子 4.用杯子去装橙汁]("注意为什么用[ ]去括起来")
这样一个榨橙汁程序就写好了,不过有个缺点就是,如果当我想榨苹果汁怎么办?榨橙子已经打包成一个不可分割的程序了(这就是为什么用[ ]包裹起来),重新再写一个榨苹果汁呗
榨苹果汁 [1.先要有苹果 2,把苹果放进去榨汁机,3找杯子 4.用杯子去装苹果汁]
这样就显得非常多余重复,因为有些只要有需求变更,程序就要重新写过了,为了解决这种低效率的(提高复用性)事情,采用对象的思维就好很多了
面向对象:
这个过程当中,出现的物品有:苹果(橙汁),榨汁机, 两样东西(杯子不做讨论),把他们都抽取对象
1.关于苹果(橙子)
抽象 水果
对象 苹果 橙汁
2.关于榨汁机
抽象 机器[行为:榨汁(水果)]
对象 榨汁机
面想对象的程序中:
-
找到苹果/橙子
-
放进榨汁机(苹果/橙子)
-
榨出相对应的汁(苹果/橙子)
这样程序的代码量就写少很多了,因为每次我需要用到榨汁机,我直接使用榨汁机,然后把相对应的水果代码放进就好了.