Java漫谈1

对于接触编程的人来说,Java更多地代表了一门编程语言。

Java是一门通用的计算机编程语言,它是并行的,基于类的,面向对象的,可以一次编写到处运行的一门语言。

以上这句话摘自维基百科。不过刚开始接触编程的那段时间看到这句话时,仍然是一头雾水。我懂什么叫“计算机编程语言”,也大概懂“并行”的意思。但其后面的“基于类的”,“面向对象的”,看到这个我倒是不懂。

今天有朋友问我什么是Java的话,我通常会这么表达,如下:

你可以把软件产业想象成是一个江湖,在这个江湖中,C语言是易筋经,C++是少林七十二绝技。而Java就相当于是独孤求败用过的那柄玄铁重剑。也就是经杨过之后后来被黄蓉锻造成倚天剑和屠龙刀的那柄。自然,倚天剑和屠龙刀就对应了Java的两大应用分支,前者对应轻巧、敏捷、快速的Android开发,后者对应笨重而不失灵活性地服务器后端开发。

这种表述没有直接回答Java的本质,而是先从其在体系中的关系入手,来描述它。我觉得这样描述,会迅速地让提问者通过描述中的类比与现实生活产生联系,从而用一种相似的,或者说是一种类比的联系来理解它的存在。

当理解了关系之后,再去看其本质的定义,这个时候即使仍旧看不懂这个定义,也可以在理解关系的定义的时候展开相应的联想和思考了。

那“基于类”、“面向对象”这两个又该如何理解呢?

基于类

什么是类

在明白“基于类”这个名词之前,我们得要先明白什么是类。比较官方一点儿的解释就是——有着相同属性和动作的事物的集合。你可以把类想象成一个模板,比如我们是人类,也就是说我们都属于人这个模板,所以我们都会有一个头,两个胳膊,两条腿。而不会多一个头或者,多几个胳膊。

基于类的好处

而一旦有了这个模版,那么开发的时候就方便了。这就好比在四六级考试时,套用模板会比挖空脑袋白手起家要轻松。不过在现实的考试中你要是没有模版也能写出一些话出来,但在Java中,要是没有类,那可就什么程序都run不起来了。这个时候,你若有点儿编程经验可能就要问了,不对啊,我写第一个HelloWord的时候不也没有用类么?那是因为你刚进去的时候写HelloWord语句的那个文件就是一个类,只不过它没有什么明显的特征而已。就像空气一样,只有当它消失的时候,才感觉到它的存在。

面向对象

之前我们说道类有点儿像写作的模版,那么通过这些模版写出来的文章又相当于什么呢——对象。对象在Java中的就是被定义为类的实例。你与我都属于人类,你算是一个对象,我也算是一个对象,只要在这个世上具体的,活生生存在的生命体,就都是对象。

把这个概念发散一下,桌床櫈椅属于家具类,它们是家具类的实例,它们是对象;车船飞机属于交通工具类,他们是交通工具的具体实例;山河大川属于地理类,它们是地理的实例。从这个角度看,能得出两个结论。结论一,类和对象不是单一的转化关系,也就是说,对象可以更具类生成,类也可以从一群对象中提炼出来。结论二,万物皆对象。

在写这篇文章的时候,在知乎上看到一个关于面向对象的解释,感觉挺有趣,在这与你分享。

面向对象说白了就是,你办事我放心。即使我不放心,那也要假装放心。--摘自知乎

就比如要吃个蛋炒饭,面向过程的语言可能要从准备食材,热锅,一直到炒饭的全过程都得要自己完成。而面向对象的语言则只要告诉厨师这个对象我要吃蛋炒饭就可以了。在这个过程中不需要去管做饭的过程,当然至于炒出来的饭是咸是淡那就无法掌控了,如果不好吃,那唯一的办法就是换一个厨子再做一次,反应到程序中就是换一个对象调用相应的方法生成蛋炒饭。

小结一下,这篇文章主要分享了我对Java概念的理解,其中最重要的是它基于类,并且面向对象的特征。Java概念的话题就聊到这儿,我们下回见。

本文分享自微信公众号 - 怀英的自我修炼(hydzwxl),作者:怀英

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java漫谈10

    原来的计划是这次谈谈Java中String的另一个特征——final,不过因为还在整理思路,就放在下一次聊,这次我想聊一聊Java被斯坦福除名之后,我知道这个消...

    用户1335799
  • Java漫谈12

    上周聊完了Java中的String这种类型,这周我想聊聊Java中的集装箱——集合。当然,这篇也是Java基础漫谈系列的最后一篇文章。不过可能你会说不对啊,Ja...

    用户1335799
  • Java漫谈3

    上次我们说道Java中的Hello World(以下简称HW)是什么样子的,还写了一段HW的输出程序。不知道你是否会有疑问,难道在Java的环境中只要输入这一句...

    用户1335799
  • 编程思想 之「语言导论」

    Java 是一门面向对象编程语言,它不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单...

    CG国斌
  • Java面试基础必备知识点,怼死面试官,从我做起

    小海哥有话说 感觉最近支持我的人越来越多,谢谢大家,大家找到工作才是最重要的,我还是那句话,喜欢的就关注,想看深入研究的东西,等我更新完面试系列...

    用户1257393
  • Java 的对象和类 原

    Java 是一种面向对象的语言。作为一个面向的语言,Java 具有面向对象的特性,Java 能够支持下面的一些基本概念 −

    HoneyMoose
  • Java JDK 11:现在可以使用所有新功能

    Java Development Kit(JDK)11现已普遍可用,可供生产使用,提高了工作效率,并提供了实现HTTP / 2的HTTP客户端API。

    gemron的空间
  • 速读原著-Java核心技术(安装Java开发工具包)

    本章主要介绍如何安装 Java 开发工具包( JDK ) 以及如何编译和运行不同类型的程序:控制台程序、 图形化应用程序以及 applet。运行 JDK 工具的...

    cwl_java
  • 一文帮你理清基本Java编程思想,以不变应万变!

    业界经典10年畅销图书《Java面向对象编程》的姊妹篇《Java网络编程核心技术详解(视频微课版)》现已上市,该书基于全新Java技术并配备视频微课,以行云流水...

    博文视点Broadview
  • 什么是类?什么又是对象?

    面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。

    以谁为师

扫码关注云+社区

领取腾讯云代金券