失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > PM撸代码之Android【绝顶高手排行榜】

PM撸代码之Android【绝顶高手排行榜】

时间:2018-11-20 23:17:09

相关推荐

PM撸代码之Android【绝顶高手排行榜】

82 PM撸代码之Android【绝顶高手排行榜】

这是Android系列的第七篇文章了,也是关于Java语言的最后一篇文章了。这一篇后,我们将正式开始Android的学习。不过这一篇大家还是要好好地学一下,把Java的基础打好,那么学Android将会事半功倍的。

不久前,公众号的文章已经突破20万字了,我还是挺高兴的,一共发了80多篇文章了。规划中的文章还有很多,希望我能一直写下去吧,没有你们的支持,我是不可能有动力码那么多字的。接下来也不会一直发布Android的教程,而是会穿插地发表文章,还希望大家继续支持!

今天这篇文章的主要内容如下,我将继续用我的方式为你讲述原本枯燥的编程,今天将会加入金庸武侠绝顶高手排行榜哦,请耐心读完吧 ┑( ̄。。 ̄)┍

1 抽象类

2 接口

3 包及访问权限

【抽象类】

Java可以专门创建一个类来做父类,这种类叫做抽象类。抽象类很奇怪,咋一看,根本不明白它到底有什么用。因为它只声明了方法,而没有实现。。。

首先说明几个注意事项:

1抽象类抽象方法都必须使用abstract关键字声明

2 抽象类不能直接实例化,也就是不能直接用new关键字去产生对象

3 抽象方法只需声明,不需实现

4 抽象类的子类必须重写所有的抽象方法后,才能实例化,不然,这个子类还是个抽象类

5 特别注意,抽象类里的方法,既可以是抽象方法(加了关键字abstract),又可以是一般方法(不加abstract)

经过深入分析和类比,我发现,抽象类还是有一定作用的。抽象类就像“模(mu)板”,它可以让设计者根据它的格式来创建和修改新的类。

举个栗子你就懂了:

金庸武侠世界,被一代又一代的国人深深地喜爱,特别像《天龙》、《射雕》、《神雕》、《倚天》等优秀作品,大家耳熟能详。这么多作品,出了很多个大侠,而中国人又喜欢凡是排个座次,好吧,那我今天就借这个机会,给大家排一排,说得不好,求轻拍。。。

(1)绝顶高手排行榜

既然我要做排行榜,肯定是要先出一个进入排行榜的标准,换句话说,就是要出一个绝顶高手入榜模板。So,Let‘s do it.

绝顶高手的模板,需要了解该大侠是哪个门派的,然后再由各个门派推选出他们眼中的门派第一人(门派实例化对象)。首先,我们应该抽象出一个武林门派排行榜的模板。可能包含的信息有:大侠的名字大侠出自那一部金庸小说,还得有他功夫的描述,就像下面:

抽象的武林门派{大侠的名字;大侠的出处;大侠的绝世武功;对大侠的描述(){}}

因为这个申请入榜的大侠还没确定是谁、也不知道是哪个门派的,所以“对大侠武功的描述”这个方法是空的、抽象的,必须要等具体的申请人来了之后,才能确定这里面的内容是什么。

写成程序语言是下面这样的:

abstract class WuLinMenPai{String DaXiaName;//大侠的名字String FromWhere;//大侠的出处String JueShiKongFu;//大侠的绝世武功描述public abstract String Description();//入榜申请描述}

(2)踊跃申请入榜的大侠们

自从听说有一个绝顶高手排行榜的申请活动,金庸系列里的各个门派跃跃欲试,纷纷给出了自己门派的申请模板,举两个栗子:

少林派{少林派申请的大侠(名字,出处,绝世武功){大侠的名字=名字;大侠的出处=出处;大侠的绝世武功=绝世武功;}对申请人的描述(){说出“大侠:”+名字+“出处:”+出处+“我的绝世武功有:”+绝世武功;}}----------------------逍遥派{逍遥派申请的大侠(名字,出处,绝世武功){大侠的名字=名字;大侠的出处=出处;大侠的绝世武功=绝世武功;}对申请人的描述(){说出“大侠:”+名字+“出处:”+出处+“我的绝世武功描述:”+绝世武功;}

程序版是这样子滴,对比一下,方便你理解:

少林派class ShaoLin extends WuLinMenPai{public ShaoLin(String DaXiaName,String from,String JueShiKongFu){DaXiaName=name;FromWhere=from;JueShiKongFu=kongfu;}public String Description(){return "大侠:"+DaXiaName+",出处:"+FromWhere+"我的绝世神功"+JueShiKongFu;} } ---------------------逍遥派class XiaoYao extends WuLinMenPai{public XiaoYao(String DaXiaName,String from,String JueShiKongFu){DaXiaName=name;FromWhere=from;JueShiKongFu=kongfu;}public String Description(){return "大侠:"+DaXiaName+"出处:"+FromWhere+"我的绝世神功描述:"+JueShiKongFu;}}

然后,各门派都在自己门派内部给出了这个评判大侠的标准,于是就有很多门派大侠踊跃提出了申请,经过Glen武侠专家科学评审委员会的评定,

绝顶高手排行榜入围名单{少林派 达摩=少林派申请的大侠("达摩","我来自金庸系列的很多地方,基本有少林的地方,就会提到我","《九阳神功》、《易筋经》、《少林72绝技》");逍遥派 逍遥老祖=逍遥派申请的大侠("逍遥老祖","来自天龙八部","《北冥神功》、《小无相功》、《凌波微步》、《八荒六合唯我独尊功》、《天山六阳掌》等,同时还精通医术、奇门遁甲,还长得帅。。。");对外宣传 达摩的描述();对外宣传 逍遥老祖的秒速(); }-----------程序版class JueDingGaoShouRuWei{public static void main(String[] args){ShaoLin DaMo=new ShaoLin("达摩","我来自金庸系列的很多地方,基本有少林的地方,就会提到我","《九阳神功》、《易筋经》、《少林72绝技》,中国佛教的开山祖师爷");XiaoYao XiaoYaoLaoZu=new XiaoYao("逍遥老祖","来自天龙八部","《北冥神功》、《小无相功》、《凌波微步》、《八荒六合唯我独尊功》、《天山六阳掌》等,同时还精通医术、奇门遁甲,还长得帅。。。");}System.out.println(DaMo.Description());System.out.println(XiaoYaoLaoZu.Description());}---------------输出的结果像下面这样,然后加上一些我个人认为顶尖武林高手的私人排行榜:(排名第1)大侠:达摩出处:我来自金庸系列的很多地方,基本有少林的地方,就会提到我我的绝世武功描述:《九阳神功》、《易筋经》、《少林72绝技》,中国佛教的开山祖师爷(排名第2)大侠:逍遥老祖出处:来自天龙八部我的绝世武功描述:《北冥神功》、《小无相功》、《凌波微步》、《八荒六合唯我独尊功》、《天山六阳掌》等,同时还精通医术、奇门遁甲,还长得帅。。。(排名第3)大侠:黄裳出处:射雕英雄传我的绝世武功描述:武林至尊典籍《九阴真经》的撰写者(排名第4)大侠:独孤求败出处:神雕侠侣和笑傲江湖我的绝世武功描述:《独孤九剑》、一生用剑至臻化境,利剑无意、软剑无常、重剑无锋、木剑无滞、无剑无招。。。(排名第5)大侠:前朝太监出处:笑傲江湖我的绝世武功描述:《葵花宝典》的原创者,东方不败仅仅练了一部分的《葵花宝典》,已经厉害成那样,不敢想象他是有多厉害。。。

【接口】

之前介绍类时,我们说过Java是不支持多继承的,也就是说,子类在Java里只有一个父类,类比武侠世界,一个徒弟只能有一个师傅

但是,有时候现实情况很复杂,你只能有一个师傅,但是你想学习更多地武功,Java为了解决这个问题,就引入了接口的概念。

接口(interface)是Java实现多继承的一种机制,也是Java设计中最重要的一个环节,注意事项:

1 接口类似抽象类,但是接口中的数据成员必须初始化,且均为常量,举个例子:接口里定义一个年龄,int age=25,必须赋初值给age

2 接口里的方法必须全部声明为abstract,即接口不可以像抽象类一样既有抽象方法,又有一般方法

3 因为接口里的方法全部是抽象方法,所以abstract关键字可以省略;接口里的成员属性都是常量,所以final关键字也可以省略,但是童鞋们,不要忘记它们有加abstract和final的啊。。。

同样的,举武侠的栗子,方便你们理解:

(1)金庸系列里,人气最高的大侠——乔峰

很多人非常喜欢天龙八部里的乔峰大侠,用他做栗子来让大家理解接口的概念,我想是最好不过了。

我们知道,乔峰最开始是拜师少林的玄苦大师:师傅 玄苦(少林){武功1 龙爪手(少林七十二绝技之一);武功2 降魔掌(少林七十二绝技之一);门派功夫描述(){我们少林的招牌武功是“龙爪手”和“降魔掌”;}}我们知道,乔峰后来成为了丐帮的帮主:学功夫 汪剑通(丐帮前任帮主){武功1="降龙十八掌";武功2="打狗棒法";门派功夫描述(){我们丐帮的招牌武功是“降龙十八掌”和“打狗棒法”;}}

于是,乔峰一身武学其实是集合了少林和丐帮的精华,但他真正的师傅,是他最开始拜师的玄苦大师,后面他进了丐帮,又学会的武学,但这个就不是真正意义上的拜师了,而是另一种契约关系,在武侠里是允许这样的关系的,而在Java里就要用到接口(interface)了:

玄苦大师是父类class XuanKu{String Kongfu1="龙爪手";//少林七十二绝技之一String Kongfu2="降魔掌";//少林七十二绝技之一}汪剑通是接口interface WangJianTong{String Kongfu3="降龙十八掌";String Kongfu4="打狗棒法";public void Description();//关于武功的描述}乔峰继承玄苦同时又以另一种契约方式继承汪剑通class QiaoFeng extends XuanKu implements WangJianTong{public void Description() {System.out.println("乔峰会的功夫是"+Kongfu1+" "+Kongfu2+" "+Kongfu3+" "+Kongfu4);}}class Test{public static void main(String[] args) {QiaoFeng QiaoFeng=new QiaoFeng();QiaoFeng.Description();}}输出结果为:乔峰会的功夫是龙爪手 降魔掌 降龙十八掌 打狗棒法

【包及访问权限】

前面基本将面向对象的知识点讲得七七八八了,现在讲一点特殊的【包】概念。

包是类的特殊性质,包是用来管理大量的类文件,可以设置他人对类成员的访问权。包可以理解为一个更大的、管理类的类(有点拗口)。。。

还是举个栗子你就懂了:

进入武侠世界,武林也是很大的,林子大了什么鸟都有,有可能两个门派的名字是一模一样的,如果这种情况发生在举行天下第一武道会时,很容易撞车,当你看见两个名字一样的门派时,不知你会作何感想。

比如,伟大的少林就分裂成了好几个,如果他们出去都说自己是少林的,很容易引起混淆,让江湖同道感到儿戏,所以,在北边的少林称自己为北少林,在南边的少林称自己为南少林。

包在程序里很大的作用就是在你使用多个类或接口时,为了避免名称重复而采用的一种措施,用package关键字,声明一个包,用包来区分同名的类和接口。

门派 少林(北边){对外宣传(){我是少林派;}}门派 少林(南边){对外宣传(){我是少林派;}}在武林大会时,遇到这种情况,就会Duang,闪退。。。如果在前面加了区域(package关键字),就可以将两个门派(类)区分开:区域 北边;门派 少林{对外宣传(){我是少林派;}}区域 南边;门派 少林{对外宣传(){我是少林派;}}--------------代码是这样子的:package.north.java;//声明区域class ShaoLin{public String talk(){return "我是少林派";}}package.south.java;//声明区域class ShaoLin{public String talk(){return "我是少林派";}}这样子,两个少林派就可以区分了,是不是很神奇??

注意事项

1 声明包会用到关键字package关键字

2 使用不同的包,会用到关键字import(就是进口的意思)

(华丽丽的分界线)

好了,通过几篇文章,已经把Java讲完了,让我们来回顾一下:

78 PM撸代码之Android【1小时学会Java】:这一篇讲的是基本的Java语法

79 PM撸代码之Android【武侠篇:面向对象基础】:这一篇简述了一下面向过程和面向对象,同时介绍了面向对象的重要知识——类和对象

80 PM撸代码之Android【武侠讲封装、继承、多态】: 这一篇主要讲了面向对象的三个特性——封装、继承、多态

82 PM撸代码之Android【绝顶高手排行榜】:这一篇讲了抽象类、非常重要的接口、包的相关知识

开发Android所需要的Java基本知识就差不多学完了,还有一些比较零碎的知识,它们也挺有用的,但大家可以在学习开发Android的过程中再补充这些知识,它们是:

匿名对象、构造方法、异常处理、关键字(this、static、super、final)、String和StringBuffer等

边学边补,是一个比较理想的状态,^^_ 哎呀,嘴都笑歪了。。。应该是酱紫的^_^。。。

下一篇就可以正式开始勾搭Android了,谢谢大家的支持!

Glen是谁?

我是来自中山大学的一只0岁产品经理,俗称PM0。即将走出校园,分享面经、产品、数据、读书笔记、互联江湖,愿你与我在产品的道路上一起成长,共勉!

90后自媒体联盟

JiGlen

90后自媒体联盟是一个汇聚BAT等互联网新进从业者的组织,目前以微信群形式运营,这里有各位大神,热心创作和分享自身的产品干货和心路历程,交流自媒体运营和创作经验,内有人人都是产品经理、互联网er的早读课等社区的老大蹲点发现优秀文章。

如果你有兴趣加入我们,可以关注我的公众号JiGlen,说明你运营的公众号或其他博客,审核通过后,会拉你入群。

如果觉得《PM撸代码之Android【绝顶高手排行榜】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。