ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> Java教程 >> “备孕期”的Java程序员一定要学会抽象 | 《Java编程思想拆书》

“备孕期”的Java程序员一定要学会抽象 | 《Java编程思想拆书》(1/2)

来源:网络整理     时间:2018-10-25     关键词:

本篇文章主要介绍了" “备孕期”的Java程序员一定要学会抽象 | 《Java编程思想拆书》",主要涉及到方面的内容,对于Java教程感兴趣的同学可以参考一下: 我相信,看到标题后的你一定很好奇,究竟什么样的Java程序员算是在“备孕期”呢?在我看来,“备孕期”主要指那些初入Java编程的新人,他们正下足功夫准备,以求在...

我相信,看到标题后的你一定很好奇,究竟什么样的Java程序员算是在“备孕期”呢?在我看来,“备孕期”主要指那些初入Java编程的新人,他们正下足功夫准备,以求在10个月后以高薪的姿态进入一家软件公司——此时正是职业履历的开端——比如说,简历上的自我介绍是:我从2018年10月24日(程序员节)进入一家“青苗科技工作室”(我组织的一个接私活的小团队;有Web全栈、安卓等方面的项目可以私聊我哦),正式开始编写为自己带来第一桶金的Java代码…距今,我已经有8年的Java编程经验了…

一、什么是OOP?


学习Java的程序员第一个要了解的基础知识就是:什么是OOP?让我来举一个生动的例子,知道齐天大圣孙悟空吧?这只孙猴子就是一个对象,关键看你要把他看成是一只猴子,还是一个神仙。你知道Dota吗?在这款推塔杀人的游戏当中,就有齐天大圣孙悟空这个角色,貌似欧洲战队玩的很溜,反倒国内战队在比赛中使用的频率很低。
来看一段代码吧:

public class SunWukong {
    private Integer healthPoint;// 生命值
    private Integer magicPoint;// 魔法值
   
    /**
     * 棒击大地
     */
    private void rodHittingTheEarth() {
       
    }
   
    /**
     * 丛林之舞
     */
    private void jungleDance() {
       
    }

}


当我们把孙悟空看成一个对象的时候,编程就变得简单了起来;我们给他两个属性(生命值和魔法值),给他两个技能(棒击大地和丛林之舞)。假如我是LGD战队的357,一名聪明绝顶的好教练,主要负责赛前的BP工作和战术的研发。现在,是TI9的小组赛,LGD对阵OB的第一局。我,357在BP阶段先BAN掉了比较克制孙悟空的兽王和发条技师,然后在选人阶段(PICK)挑选了水晶室女这个冰美人来和孙悟空这个一身毛的家伙搭配。那么,在我选孙悟空的这个阶段,就等于说创建了一个孙悟空的对象,也就相当于Java中的new SunWukong()。选好了孙悟空,让谁来玩呢?自然是我们队中号称世界第一中单的maybe啊。
OOP其实并不难懂,不过就是英文单词Object-Oriented(导向的、面向的意思) Programming的首字母缩写嘛。OOP给我们一种观念,就是“万物皆对象”——我们可以尽可能的发挥想象,把现实中的物(包括动物、人物、甚至无生命的事物)抽象为一种计算机语言(比如Java)能懂的模型,那么,接下来我们让计算机来解决现实中的问题就变得简单了起来。
OOP的强大之处就在于,它使我们不必依照计算机的限制来模拟现实中的物;我们可以基于现实中要解决的问题来构建对象,使这个对象具有现实中物所具有的特征(对应Java中的属性)和行为(对应Java中的方法)。物不同,对象所具有的属性和方法就会不同。
还拿Dota中的英雄来说吧。所有的英雄都可以抽象为一个类(对象是类的实例化),这个类包含了英雄对应的成长属性(生命值、魔法值、伤害值、护甲值等等),以及对应的技能行为。那么,怎么区分每个英雄的不同呢?比如说冰美人水晶室女是一个魔法辅助类的英雄,因此,她的初始化生命值自然比敏捷类的齐天大圣低一些,但魔法值高一些;另外,他们的技能也完全不同——孙悟空拿着一根金箍棒,所以他的技能就有棒击大地;水晶室女拿着一根法杖,所以她的技能就有冰霜新星、冰封禁制等。
在我看来,OOP概念的提出,是编程界的一个重要的里程碑。它给我们以下重要的启示:

相关图片

相关文章