今天主要讲解 Java 学习中一些很常用、但并不是每个人都懂的概念:
- 编程语言
- 语法
- 语义
- 标识符
- 关键字(保留字)
- 变量
- 常量
- 类
- 对象
也许有人会问,这么简单的东西,为什么还要讲?原因很简单——工欲善其事,必先利其器。在我看来,正确的理解一门知识的基础概念才是学好这门知识的重中之重 。正如初、高中学习一样,很多人根本不注重书上的基本概念,一上来就开始做题。但只要细心观察,就会发现:那些学霸不一定是做题最多的,而是那些概念记得最清、用的最好的人。通常情况下,当他们接触到一个新概念的时候,他们会花更多的时间搞明白这个概念的具体含义以及如何使用;反观那些疯狂做题者,他们往往在做了 N 道题之后才可能搞明白一个概念,通常情况下,你会感觉他们很忙,而且他们学习很累。不过还好,上天是公平的,不是有一句话叫“条条道路通罗马”吗,所以最终这两类人中都有人成功考上了自己心目中的大学,但无论谁都不想称为后者吧?
好了,扯的有点远了,下面开始今天的分享:
一、编程语言
编程语言是一种设计用来将指令传给机器的语言。
编程语言其实和人们之间用于沟通交流使用的语言一样,只是交流的对象不同而已,前者是人和机器交流,后者是人与人。既然都是语言,那么它们的主要功能肯定也是一样的——传递信息。编程语言主要用来创建控制机器行为或者表达算法的程序,而人们的语言主要用于生活。
通常情况下,人们在描述一门编程语言的时候,主要从两个方面入手:语法和语义。
二、语法
在计算机科学中,计算机语言的语法是一组规则,它定义了一个正确结构化的文档或片段的符号组合。
其实此处的语法,和我们初、高中学习的英语语法是一个相同的概念,它们的主要作用就是——制定标准。英语语法是针对英语语言进行研究后,系统地总结归纳出来的一系列语言规则,是组词造句的规则,是把合适的词放进合适位置的艺术文化底蕴;同样的,人们为了更好的使用新开发的编程语言,制定了语法,也就是(编程)语言使用的方法或者标准。
三、语意
在编程语言理论中,语义是对程序意义研究的领域。
它的主要作用:通过评价合法的特定编程语言的意义展示(或执行)相关计算。说的更直白一点——机器根据代码的意义,执行相关的操作。以上场景对应到现实世界:某人收到上级领导的一个命令,然后按照命令完成了任务。这个命令所传达的意思就是语义。
1.语法和语义的区别
其实,只要上面的基础定义搞清楚了,在这里是不会混淆两个概念的,因为它们根本就是两个不容易混淆的概念。但我搜了下,发现问此类问题的人还不少,所以,也在这里赘述一下,用一个很简单的例子说明,例如:
- 人的血是红色的(A)
- 人的血是绿色的(B)
两句话从语法上讲都是没有问题的,但是 B 从语义上讲是错的。同上面的错误一样,我们在编写程序的过程中,也会出现上面两种错误,但由于现在编辑器已经可以识别语法上的错误,所以很多时候,程序出现的几乎都是语义上的错误。有时候,也许你的思路是对的,但是由于在实现的过程中,疏忽了某一点,最终导致程序崩溃了,此时的错误就是语义上的错误,也就是说:你没有表达清楚,导致机器不知如何是好,最终程序崩溃了。
四、标识符
在编程语言中,标识符是用来标识变量名、类名的有效字符序列。
简单的说,标识符其实就是给包、类、方法、参数及变量取的名字,告诉编程人员它是什么。
五、关键字
简单的说,关键字就是一些特殊的字,告诉机器它是什么。在编程语言中,一个关键字是不能当作标识符使用的。
通常情况下,关键字其实就是保留字。只是在有些语言中,保留字和关键字是一样的,例如: C 语言;有些语言中,保留字比关键字多,例如: Java;而在另外一个古老的语言中,关键字比保留字多,例如: FORTRAN。
六、变量
在编程语言中,变量是一个有标识符的存储位置。
此处的标识符就是变量名,变量名是变量存储数据的引用。同一个存储位置可以有多个标识符,在执行程序的过程中,只要通过一个标识符将存储的数据的值改变了,那么其他几个与此存储位置相关的标识符引用的变量的值也改变了。
其实在我看来,变量就像一个盒子,可以向里面存放符合相应规格的东西。
七、常量
在编程语言中,一个常量是一个不能被程序在正常执行过程中改变的值,也就是说,该值是恒定的。
举个最简单的例子:1,2,3 。
八、类
在面向对象的编程中,类是一个用于创建对象(实例)的程序代码模版。
回到现实世界,类是一个抽象的概念,它是对一类事物的统称,例如:猫、狗等。当我们说猫时,想到的是一只抽象的猫,它没有颜色,没有体重,没有身高,只是猫这种动物而已,因为当你赋予它颜色,它就不能代表猫这类动物了,而是代表指定颜色的猫。
在面向对象编程中,应用的思想和上面如出一辙——当创建一个类时,就会先在脑海中构想创建这个类的目的是什么,为了达到这个目的,这个应该拥有什么样的属性和方法(功能),想通了这些,这个类便应运而生了。很多时候,当我们调用类的对象的方法时,其实是在向对象发送消息,告诉它做什么操作。
九、对象
在面向对象编程语言中,某个类的具体实例就是对象。
由上面的分析可知:对象其实就是类中的具体一员。例如上面提到的猫,当我们说“一只属于王小红、颜色是灰色的波斯猫”时,已经可以定位到一只具体的猫了。所谓具体,其实就是:当我们向它“发送”一条消息时可以找到具体的执行对象。例如,当你发出一条“猫,把那只老鼠捉住”命令时,是得不到执行的,因为猫是一个抽象的概念,只有当你具体到某一只猫时,这个命令才会被执行。
参考