即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

Java语言-四-类、对象与接口-170606

编程语言 meiceatcsdn 8℃ 0评论

今天的文章偏向于概念,改天上实际代码,做详细解释。

理解一个概念并不难,但是能否理解的深刻对于不同人来说,说夸张点,真是ZB级的差别。就如同喝了那么多人生的鸡汤,懂了那么多道理,依旧过不好这一生差不多。

小学时候,老师让分享学习方法。那时候还不懂得分享的真谛,真是舍不得分享,也藏着掖着不敢全部分享。后来慢慢长大,就发现,所有的学习方法无非就是:预习、课堂、复习这三个环节。重点不是敢不敢分享,最最核心的是,分享了你是否做得到。我工作时候,记忆犹新的一句口号是:知道不是力量,信任并做到才最有力量。是的,关于Java面向对象很多概念,结合现实都很简单,最最核心的是和代码关联起来,落实到怎么写代码上。



大家好!我是类,我是Java中的类。我有很多兄弟姐妹:普通类、抽象类、匿名类、内部类(我自己更喜欢称呼我为“类中类”)、Final类、子类、实现类……总而言之,一句话,我就是神一般的存在。

理解我很简单,我就是现实抽象的一个概念。“我和你不是一类人”这其中的类就有那么点味道。现实感觉相似,就可以按照你的需求归结为一个类。所有电脑是一个类、所有动物一个类;所有植物一个类等等。我就好比医药行业的自然人,听起来有些抽象,实际我扮演的角色就是商务代表。商务代表可以看成是我的一个具体示例。我普通的样子就是普通类。

我本来已经够抽象,但是如果在有Abstract修饰比如:

public abstract class HelloWorld {

}

对象


这个HelloWorld类,可真就是神一般的存在了。你明明知道我存在,也能感受到我的各种属性和方法,但是就是触摸不到我。你需要通过对象,也就是New一个对象来和我对话。我是神,我只存在于天地间,你需要为我找到一个肉身——神像,好让我寄宿里面。New的对象,就是这个神像,通过他,你就能看到我的言行举止,也就是我的各种属性和方法。你看到我的形态、相貌、服饰等外在表现为静态的,也就是说出来是名词的,就是我的属性,这些部分比较固定,一般不改变;另外,我的嬉笑怒骂等,这些听起来是动词的部分,比如我施了法术这个动作,类似这样的就是方法。

public class God {
    public void Conjure( ){
        System.out.println("我在这里施了法术,普度众生~");
}
}

Conjure就是方法。

我的兄弟匿名类,它不需要一个固定的神像来让他天天寄宿,想到它的时候,你用一下他,用完他就游山玩水去了,不像其他类一样能够长久宅在雕像里,还得你上香祷告。所以,用它用的毫无牵挂,轻轻地来,轻轻地走。不过前提是要有父类。语言先解释到这里,后期分享有实际代码,就很好落地啦。

我兄弟内部类,就是我肚子中的蛔虫。我包含着它。我有的东西(定义的属性)它可以直接拿去用。

那个Final类真是最固执,也是最自信的一个。它从一开始就认为自己是最好的,不需要任何外界的修改和指手画脚。它完美阐释了这句话:没有更好,只有最好。 它认为它总是对的,它做的任何决定,别人都无权修改。它就是它,永远都是它。

我还有兄弟,那就是子类。子类,当然也有爸爸类喽。这和我们现实世界很像,子类可以继承父亲的一些属性和方法,也就是继承老爸的一些车、房子之类,还有老爸的一些为人处世方法、赚钱方法、娱乐方法等。要知道,不是每一个孩子都这么循规蹈矩,有的孩子不满意父亲的赚钱方法,自己决定在父亲基础上,重新发现一种赚钱方法,比如百度上分享原创知识、比如打游戏挣游戏币等……这其他赚钱方法,都是对父亲原有方法的重写。父亲毕生摸索的经验,也不要扔了,全部继承过来,在继承的基础上,增加个性的东西,不然岂不是忘了老本。


接口


还有一个兄弟叫做实现类。它主要和接口打交道。把抽象的接口变成可以具体实现的功能。神马事接口呢?

有一天,你去买凉席,你睡的是上下铺,你知道要买几尺大小的凉席嘛?


当然不记得,可是商店老板记得,欧克,搞定。有一天,你又要买被子,你也不知道要买多大的,可是被子商家知道;Why?因为,因为上下铺都有一个标准,这个标准让木匠、被子商、凉席商都认可,而且都知道,所以不论你走到哪,都可以买到很合适的和上下铺绝配的东东。

现实世界还有好多例子:比如无论你在西安、上海、中山、北京还是甘肃,你只需要带一个笔筒就可以,笔芯在哪里买都是一样的,因为在笔筒、笔芯生产上都遵循一个标准,这个标准就是外界进入这个行业的接口,很难想象,你再要换笔芯的时候,非要到指定的地方才能买到和这个笔筒相匹配的笔芯,那会是多么不方便啊?在比如:时间。时间本来并不存在,各国也有各国的记录时间的方式,可是当地球变成地球村的时候,世界时就出现了。很难想象,一个人非洲人发生空难,坠落尼泊尔,没有一个统一的时间和经纬度,两个国家的警察叔叔怎么对话才能尽快找到这个人?那么,世界时和世界经纬度就是国际上定义的两个接口,你只要想参与世界游戏,就要遵循这个标准和接口,这样才方便交流。其实,示例就在眼前。公元前221年秦统一六国后,咱们的秦始皇老前辈就举行了这么几项非常给力的措施:车同轨,书同文,行同伦,统一度量衡。这些都是为了在每一个行业形成一个个的接口,方便进入和退出。否则,你按你的想法去做,你修你省的铁路,我修我省的铁路,我省的铁路三个马屁股宽,你省铁路两个马屁股宽,火车到了交界处怎么办?火车永远只在一个省跑??所以嘛,接口,就是这样的功能。这就是接口的魅力!

接口很抽象,所以需要实现类把它具体化。如上面所说,行业标准需要具体写出来,开始人们知道需要这样的标准和接口,实现类就是具体化。其实跟对象和类的关系差不多。

好了,码了这么多字,都在理解概念,概念理解透了,写代码就很快。今晚就到这里,晚安。

转载请注明:CodingBlog » Java语言-四-类、对象与接口-170606

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情