我始终坚信,人只有在冷静清醒的时候,思考的问题是才是最深刻的。
每个人都有两个自我,你会发现每次在做决定时,最先会问问内心的自己,因此其实自己就是自己的最大的拷问官。
今天我就对着代码问了问自己,为什么这样编程就算是面向了对象编程呢?
自己答:因为有类啊,还用到了封装,继承和多态啊,这三者不久就是面向对象的基础吗?
为什么不说面向类编程,而说面向对象编程呢?
因为类是对对方的抽象啊,看看类的定义就知道了:类就是具有相同行为和属性的对象的集合。
1、那什么叫抽象?
2、抽象出来了什么东西?
3、如何抽象?
4、为什么要抽象啊?
1、抽象是什么?
个人理解就是找对象间的共性。白话点就是找对象间相同的东西。
在面向对象的编程中,抽象有两方面的含义:分别为数据抽象和过程抽象。
(1) 数据抽象:
数据抽象其实也就是属性抽象,无论是对象还是类都有他们自己的很多属性,这些属性在程序设计中被视为数据,其实这些属性在实际的程序中也是以数据的形式存在的。
把现实世界中事物的具有的特征抽象为程序中的数据(属性),这一过程叫数据抽象。
程序中的数据(属性)是用来描述现实事物的“状态特征”,比如一人的身高 、体重,三维等,不过,事物的有些特征是不能有这种办法来描述的,比如,我们会跑 ,会跳。
因为这些是动作过程,而不是一种状态。要描述事物的这种动作过程,就需要将下面的“过程抽象”
(2)过程抽象:
过程抽象表示对象的一个“动作”,就是把事物的变化抽象为对象的“方法”。
过程抽象可以将事物中的动态的特征在计算机程序中表示出来,因此过程抽象和数据抽象两者结合在一起就可以完美地模拟真实的事物。
2、抽象出来什么东西?
抽出来共性
无论是狗还是猫还是马这些对象,它们共性的东西:从行为上看,都会叫,会跑。从属性上看,都有4 条腿,恒温。
3、如何抽象?
核心就是进行比较。在比较中找出共性。
4、为什么要抽象?
就目前的认识水平:是为了更好的复用。