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

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

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

其实我没有骗你们哦,一门编程语言其实内容就是上一篇的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();

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


目录
相关文章
|
2月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
33 1
|
2月前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异:从代码到用户体验
【10月更文挑战第5天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。它们在技术架构、开发环境及用户体验上有着根本的不同。本文通过比较这两种平台的开发过程,揭示背后的设计理念和技术选择如何影响最终产品。我们将深入探讨各自平台的代码示例,理解开发者面临的挑战,以及这些差异如何塑造用户的日常体验。
|
3月前
|
存储 Java Android开发
🔥Android开发大神揭秘:从菜鸟到高手,你的代码为何总是慢人一步?💻
在Android开发中,每位开发者都渴望应用响应迅速、体验流畅。然而,代码执行缓慢却是常见问题。本文将跟随一位大神的脚步,剖析三大典型案例:主线程阻塞导致卡顿、内存泄漏引发性能下降及不合理布局引起的渲染问题,并提供优化方案。通过学习这些技巧,你将能够显著提升应用性能,从新手蜕变为高手。
36 2
|
4月前
|
JSON JavaScript 前端开发
Android调用Vue中的JavaScript代码
Android调用Vue中的JavaScript代码
51 3
|
4月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
很多文章都介绍了FTPClient如何连接ftp服务器,但却很少有人说如何连接一台开了SSL认证的ftp服务器,现在代码来了。
117 2
|
5月前
|
存储 Java Android开发
🔥Android开发大神揭秘:从菜鸟到高手,你的代码为何总是慢人一步?💻
【7月更文挑战第28天】在Android开发中,每位开发者都追求极致的用户体验。然而,“代码执行慢”的问题时常困扰着开发者。通过案例分析,我们可探索从新手到高手的成长路径。
43 3
|
4月前
|
Java Android开发
Android项目架构设计问题之要提升代码的可读性和管理性如何解决
Android项目架构设计问题之要提升代码的可读性和管理性如何解决
46 0
|
5月前
|
API Android开发
Android 监听Notification 被清除实例代码
Android 监听Notification 被清除实例代码
|
5月前
|
Web App开发 JavaScript 前端开发
Android端使用WebView注入一段js代码实现js调用android
Android端使用WebView注入一段js代码实现js调用android
140 0
|
6月前
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
297 0