C#——面向对象

有趣的问题

在面向对象的开头提出这样的一个问题:是先有的对象还是先有的类?类似于先有的鸡还是现有的蛋?

我们都知道,对象:世间万物都是对象,所有的东西都可以说是一个对象。类:概括来说就是有相同或相似属性的对象的集合,可以说是一个模板。

面向过程VS面向对象

理解这个问题之前先了解一下为啥要面向对象,为什么不可以面向过程,面向别的?做一个比喻:我们现在多多少少都会在家里做做饭,当有人把做好的色香味俱全的红烧肉端到你的面前的时候,你可能会问“大厨”一句:你是怎么做的呀?其实我们问的就是做的过程。这个不难理解

大厨说:

1.先把五花肉切成小方块,

2.冷水煮15分钟左右,

3.肉捞出,4.准备佐料葱姜蒜糖;

5.肉炒糖色3-5分钟;6.加入佐料;

7.大火炖20分钟,盖上盖子;

8.60-70分钟小火,盖上盖子

9.10-20分钟分钟中火,不盖盖子 

10.加调味剂 11.5分钟小火收汁,盖上盖子。

(之前看到了一篇关于怎么做好家常红烧肉的微信文章,顺便推荐一下:水晶五花肉


像这样把每个步骤都罗列出来:然后给每个步骤分别用一个函数来实现 ,到哪一步了就调用那一步的函数就可以了。

如果换做是面向对象

1、对肉处理方式:切块、煮、炒、炖

2、时间系统:煮15分钟、炒5分钟、炖(分大、中、小火)115分钟

3、技巧系统:炖—用水加锅盖、炒—用糖加佐料、炖(大、小火)—加锅盖、炖(中火)——加调味剂

这里对象一:方式(制作过程的主要方式方法,是主线);对象二:时间(把握每一步骤达到预期要求,如肉15分钟是否煮熟;炒5分钟是否有糖色等);对象三:技巧(技巧里涉及到了 佐料调味剂和加不加锅盖的两个问题,保证好吃的细节)

从上面两个可以看出,面向过程是按照步骤来处理的;面向对象是更具需要,保证了制做的主要内容。

这个例子其实并不是很理想,仅仅提供参考。

我们还是回到刚刚的问题上:先有的对象还是先有的类?

答案:

就像上面说的:面向对象,我们为什么不面向类呢?世界上所有的东西都可以说是对象,我们面向的是单个的对象,而不是一个集合一个模板类,这就说明了我们先有的对象,对象多了有了很多有相似特征的相似处理方法的,所以才把它命名为类。

从哲学的角度:俗话讲物以类聚,那么是不是可以说我们有了物,而且物多了才可以以类来划分?

从科学的角度:人存在之前,这个世界上就已经有物存在了:比如什么星、什么球。。。这些都是有了人之后,人给命的名字,才把这些有相似特征的归纳为:七大行星、宇宙万物。。。

你觉得呢?有不同的意见我们可以交流!




猜你喜欢

转载自blog.csdn.net/xml1996/article/details/81056668