zoukankan      html  css  js  c++  java
  • 一个屌丝程序猿的人生(三十九)

      有史晓玲这么一位颜值不错的妹子常伴左右,换作一般人还真的很难静下心来学习,但是林萧却很清楚,在眼前的情况下,撩妹和学习到底孰轻孰重。

      更何况,这妹子可是怀了张亮的孩子的,就算是要撩妹,林萧也还没到饥不择食的地步,拿自己兄弟的妹子下手。

      这事儿特么不地道啊!

      于是,心无旁鹭的林萧,在结束了Java基础的学习之后,立即便开始了接下来的视频学习。

      ......

      紧接着Java基础的一章,是Java高级特性。

      不知为何,程序猿总会对这些听起来很牛逼的词汇感兴趣,因此,一看到“高级特性”四个字,林萧立马就来了精神。

      然而事实上,真正牛逼的东西,往往不是那么好理解的。至少对于一个初入Java领域的菜鸟来说,“高级特性”这四个字还是太过深奥了一些。

      就说“高级特性”中最开始的内容吧,面向对象的三个重要特性,继承、封装以及多态。

      其中继承其实已经是最好理解的一个了,原因是继承在现实中的例子实在是太多了,最典型的就是父子之间的关系。

      儿子会继承老爸身上某一部分的特征,并且还会拥有老爸身上所没有的一些特点。这正是诠释着,子类可以继承父类的属性和方法,并且通常还会拥有父类所没有的一些属性和方法。

      与此同时,儿子虽然可以继承老爸的一些特征,但也并不是所有特征都可以继承的。因此,这也正是诠释着,子类只能继承父类部分的属性和方法,一些隐藏比较深的,例如被private所修饰的,子类也是继承不了的。

      知道继承的以上两点,对于一个新人来说,就基本上足够了。至于一些有关继承比较高级的用法,例如模板方法模式这种的,就只能在以后的路上,慢慢研究去了。

      封装相较于继承,会比较难理解一些。不过对于很抽象很难理解的知识,林萧有自己的办法,那就是找相似的事物。

      因为林萧相信,世间万物都是相通的,任何一个知识点,你总能在其它领域找到相似的。

      就说谈恋爱这回事吧,都说没有最好的,只有最合适的,这句话,其实也同样可以适用于找工作,这就是一个最简单的道理相通的例子。

      知道了这一点之后,如何找到一个合适的例子,就比较关键了。

      关于封装的现实例子,其实说起来还是蛮多的。就说叫外卖这件事吧,其实卖家就充分体现了封装的思想。

      那么卖家到底封装了哪些东西?

      很显然,大致包括了买菜、洗菜、做饭、送饭等等一系列的动作,而你只需要付钱给外卖员,就可以吃到香喷喷的饭菜。你不需要知道如何买菜,如何做饭等等这些琐碎的事情,你要做的就一件事,就是掏钱!

      这就是现实中封装的思想,也就是所谓的一站式服务。

      对应到编程世界,其实也是一样的,一个类要尽可能把自己的服务细节隐藏起来,不对外部暴露,让外部的类只需要“付钱”,就可以方便的调用服务即可。

      隐藏细节,这其实就是封装的核心思想了。

      三大特性中,继承和封装都说完了,还剩下最后一个特性,也是最难理解的一个。

      多态在很多人刚接触Java时,都难免会觉得懵逼,林萧也不例外。尽管他一直在试图理解“不同的类型有不同的表现”这句话,但其实他在当时,始终都没有理解到多态的本质。

      多态的本质其实用一句话就可以概括,就是“编译时和运行时才决定对象的行为”,俗称为静态分派和动态分派。

      很多人第一次看到这两个词的时候,应该比看到多态更加懵逼,但其实沉下心来去想想,这两个词其实非常好理解。

      不过理解的前提是,你要非常清楚一个Java程序从编写到运行的过程,简单的说,这个过程就是编译和执行。

      而静态分派和动态分派的本质就是,静态分派是编译期间就可以决定的,而动态分派则是执行期间才可以决定的。

      要理解编译期和执行期其实也非常好理解,你可以把计算机看做是一个英国人,而你是一个中国人,程序就是你写的一篇文章。

      那么计算机要想运行你的程序,也就相当于英国人要想读你的文章。

      那就首先得有人把你的文章翻译成英文,这个过程就相当于编译的过程。这个负责翻译的人,在现实里就叫翻译员,而在程序世界里,就是编译器。

      当文章被翻译成英文以后,英国人就开始阅读你的文章,也就相当于计算机开始运行你的程序。

      而对于Java程序来说,编译器其实就是javac,而所谓的计算机,其实就是JVM。

      理解这个最基本的编译和执行的过程,静态分派和动态分派就很好理解了。而理解了静态分派和动态分派,多态就非常好理解了。

      当然了,这些知识,对于初学Java的林萧来说,当然是不太可能彻底理解的,不过这其实并无大碍,学习本身就是一个循序渐进的过程。

      ......

      说起来,林萧也算是够拼命的,自从开始培训以后,几乎就变成了足不出户的骨灰级宅男,与当初在家里玩游戏的时候,简直是如出一撤。

      一天下来,除了上厕所和拿外卖以外,林萧几乎可以做到坐在椅子上一动不动。这种惊人的毅力和懒的程度,如果不是以前玩游戏早已经习惯了的话,说不定林萧还真坚持不下来。

      但是,这种生活虽然看起来挺苦逼的,林萧却非常乐在其中。而且,游戏所带来的快感,与知识所带来的快感相比,始终缺少了一种充实感。

      这种充实感,可以帮你驱散孤独,也会让你有种,未来掌握在自己手里的安全感。

      此时此刻,林萧心中多少有些明白了,为什么有人说,成功的男人要学会享受孤独。因为享受孤独的过程,其实就是你充实自己的过程。

      然而,就在林萧尽情享受孤独,疯狂得充实自己的时候,一个故人却再次打断了这种疯狂而又宁静的生活。

      她,来了。

  • 相关阅读:
    [置顶] Blender 三维绘图及渲染软件 (开源优秀强大跨平台)
    观察力训练(福尔摩斯演绎法)
    Shiro 权限框架使用总结
    [置顶] 如何编写出优美的 JavaScript 代码
    TopCoder 入门教程 sqybi完善版
    开源 3D CAD 软件 gCAD3D 1.9.1 发布
    Java 局部内部类访问局部变量必须加 final 关键字
    [置顶] 程序员如何做出“不难看”的设计
    JavaFX DirectoryChooser[目录选择器]使用实例及源代码[图文]
    项目管理软件收集
  • 原文地址:https://www.cnblogs.com/zuoxiaolong/p/diaosi39.html
Copyright © 2011-2022 走看看