笨办法聊面向对象

105 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

今天,在公司和小伙伴们吃完饭聊起了面向对象(我现在也想不明白为啥聊这个),但是,平时一个一个不太言语的大哥慷慨激昂之后,突然感觉学到了好多,嘿嘿嘿,赚到了,见者有份,和大家分享一下。

理解

面向对象是一种编程思想,啥是编程思想,万物皆对象(说实话,我被这句话装到了),但是确实有点晦涩,有点哲学和神学的意思了,从开发的角度上来说,对于一个初学者,特别不建议强行理解这个概念,因为可能有两种情况:

1)牵扯的经历和获得的内容不成正比,浪费经历,并且拖慢学习进度

2)理解偏差,在编程过程当中为了写面向对象强行写类,代码逻辑混乱(这个很可怕)

所以这么做呢?很简单,动手理解,先看一下下面这句话,并且大量可以的付诸行动:

面向对象编程就是把一个实体的所有功能和参数用一个叫做类的东西包裹起来,等到使用的时候通过类调功能,不在是直接调用功能,这样在代码里维持同一系列不同个体的业务实体。

好吧,这个东西还是有点复杂了,举个例子,我们经常玩的对战游戏(有时间可以一起开黑呀):

里面经常会出现这样一个场景,5v5对战,敌我双方都拥有同样一个角色,这种情况下,这个双方的技能,初始成长属性是一致的,但是通过装备,操作,最后的属性又是不同的,那么参照这个例子来理解上面的那段话:

1)对战游戏当中的英雄其实就是一个面向对象的类,指的是一类英雄,而不是一个具体的个体。真正具体的个体是双方在对战当中操作的角色。

2)细节上说,英雄类的构成就是由他的数值属性和功能(技能)构成的,然后被玩家引用,形成拥有独立特征的个体。

这种设计思路就是面向对象啦

练习

按照上面的思路练习可以这么做:

1)在练习前找一个对象,先从生活中找(比如,飞机,坦克)再到网络上(分页器,banner图)从自己认知的,到自己设想的逐步加深难度。

2)使用类描写自己找的对象,先静态的描写,然后融入场景描述:小汽车,可以挂挡的小汽车,可以加油拆解的小汽车。

  1. 这样重复1,2步,每次一例,一天三次,嘿嘿嘿,很快就有效果了。