PM撸代码之Android【武侠篇:面向对象基础】

79
今天分享一篇PM撸代码系列Android之【武侠篇:面向对象基础】



开始Android系列已经第五篇了,在之前的一篇文章中,我们正式开始学习Java,有很多小伙伴在公众号后台问我,说我的语法没有讲完全,连类和对象都还没有讲就说“No.78 1小时学会Java”,简直就是骗人。。。

其实我没有骗你们哦,一门编程语言其实内容就是上一篇的5个BOSS,剩下的就是比较高级的编程思想了。学Java最重要的就是面向对象的编程思想,我这里不会像教科书里那样巴拉巴拉,会通过我的特有幽(dou)默(bi)方式跟你讲述这种高级(Duang)思想。

这一篇有2个BOSS,打完它们,你将升到等级5并获得称号"武侠对象通":

1 面向过程和面向对象

2 类和对象


【1 面向过程和面向对象】

面向对象可以说是另一种看问题的世界观,编程语言可以分为:

1 面向过程编程:程序=算法+数据

2 面向对象编程:程序=对象+消息

AFK:我这么讲,你肯定快要睡着了=_=,放心,之前我也因此受害过,我可舍不得你们跟我一样在课堂上睡觉流口水,哈哈哈。。。

来,进入武侠世界,rocking the world!

以金庸世界为蓝本,我们来讲讲面向过程是啥?举个栗子,武侠世界最开始的时候,已经不可考了,也就是说不知道武功是从哪里开始的,可能是从达摩这个外国人(貌似是印度阿三,待验证。。。)开始的,那达摩之前呢?谁也不知道。。。什么,你不知道达摩是谁?少年,你看琼瑶剧太多了吧!他是少林派的创派祖师,大家都说天下武功源自少林,虽然现在的少林寺已经成了一家跨国企业。。。

(1)武侠世界理解面向过程

扯远了,武功最开始可能就是一些人自行比划、积累的动作,人们练武目的不管是强身健体,还是杀人越货,你学习武功时,就是面向过程的,学完左勾拳,再学右勾拳,然后是螺旋踢,maybe来个托马斯?!

总之,你练武时,是没有章法的,一招学完再学一招,也不管是哪门哪派的,学得乱七八糟的,你自己都不清楚自己学的啥。这就很类似面向过程编程,你实现程序的功能只能是一行代码、一个逻辑叠加,花了很多时间、精力撸了很多代码,可是完全没有逻辑可循。

你跟别人切磋武艺,然后你被痛扁一顿(程序崩溃or结果出错)。你可能在中间一招有问题,然后你发现你的武功套路有问题(发现BUG),你回去修改,发现很困难,因为你改了这一处,很可能引起后续的招数(程序)全部出现逻辑、功能问题。

面向过程的编程方法显然很简单,你只要一层一层往下搭建逻辑即可,不过也容易出问题,万一程序崩溃了,你一般会面临两个问题:

1 你找不到BUG在哪里。。。

2 你找到了BUG,但你不敢改,因为你改了会影响之前和之后的程序逻辑,引起意想不到的问题。

还没形成门派的原始武林也是一样,你东一招、西一招地学了些功夫,很高兴地跑去跟村口的老王争夺跟小芳的交配权,结果你打输了,你也会面临两个问题:

1 你不知道为什么会打输。。。

2 你知道打输的原因是因为第三招没学好,但你也不敢改,因为你改了会影响你第二招和第四招的功夫,结果你只能去村尾跟老张争夺另外一个妹纸了。。。


(2)武侠世界逐渐发展到面向对象了

随着达摩进入了中国,上了嵩山当了祖师,天下武林渐渐开始有了门派。 门派的出现,让混乱的武术市场渐渐有了章法、类别。开始有了一些专门研究某一方向的门派:

1 少林派:长于外家功夫,精于拳脚及无刀刃兵器(棍、杖)

2 武当派:长于内家功夫,精于掌法及呼吸吐纳、养生

3 丐帮:长于外家功夫,精于讨饭和守城(What?丐帮帮主黄蓉陪她的靖哥哥守襄阳几十年,好伐??)

4 星宿派:长于毒功,精于坑蒙拐骗,但也是金庸世界里最民主的门派了(谁打赢了就可以当大师兄,你能找出第二个??)

先人把class翻译成类不是没有道理的,类就是门类嘛,就是武侠世界里的门派咯。一个门类将研究和负责某一方面的武功,往往流传下来的有武林秘籍(类的成员变量)和功夫招式(类的方法)。


【2 类和对象】

(1)武林门派(程序里的类)

一个门派将某一类别的功夫纳入其研究体系中,每一个门派都有自己独特的门派秘籍和遇敌对策,这是成立一个门派所必须的。

而程序世界中就类似武侠世界,每一个类都有自己的成员变量(门派秘籍)和成员方法(遇敌对策),用程序语言举个栗子你就懂了:

定义类 1(武侠版)

门派 丐帮 {

门派秘籍1 降龙十八掌;

门派秘籍2 打狗棒法;

施展方法 遇敌对策() {

遇到外国人用打狗棒法,遇到中国人用降龙十八掌;

}

}


定义类 2(程序版)

class GaiBang {

String MiJi1="打狗棒法";

String MiJi2="降龙十八掌";

void Facing() {

System.out.println(“遇到外国人用”+MiJi1+"遇到中国人用”+MiJi2);

}

}

(2)武林大侠(程序里的对象)

前面已经讲到门派了,门派其实是死的,门派只是一个宽泛的概念,它说明了这个门派的武功秘籍、遇敌对策、立足宗旨、发展方向等东西。但是,体现一个门派牛叉程度的还是这个门派里出来的杰出人物——大侠。换句话说,大侠来自这个门派,大侠代表着这个门派,门派里有再厉害的功夫,也只能靠大侠学成之后,出去跟人打架,才能让别人知晓。

同样的,在程序世界里,类是死的,你这个类里有再牛X的成员变量(武林秘籍)、再牛叉的成员方法(遇敌对策),都只能靠来自于这个类的对象去跟广大观众见面。类和门派一样,自身是不起作用的,必须由对象和大侠来实现类和门派的价值。

举个栗子你就懂了:

门派产生大侠

丐帮 乔峰;

乔峰出身自丐帮,并学艺成功;


类产生对象

GaiBang QiaoFeng;

QiaoFeng=new GaiBang();

说明了乔峰出自丐帮,然后乔峰就可以使用丐帮的武功“降龙十八掌”和“打狗棒法”了。到这里,你应该能明白类与对象、门派和大侠的关系了吧^_^。


恭喜您升到5级,并获得称号“武侠对象通”,请继续努力!



感谢阅读 我是Glen,【公众号JiGlen】
觉得好的话,可以关注一下哦!0岁的产品人,爱互联网,爱生活,坚持分享产品干货!大家也可以在PC或MAC上登陆以下网址查看以往文章:http://chuansongme.com/account/Ji_Glen
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值