Java语法基本概念

概述

>(green!)

该节主要来讲述关于Java编程一些基本概念,偏向于概念性,基本不涉及什么代码。

从本节开始算是正式开始学习JavaSE的语法了。

语法知识这个东西,首先是需要理解它的 含义 ,其次需要记忆它的 使用方式

最后需要在实践中练习在练习中加深 理解 和 记忆!

很多时候,同学们会发现听课、听老师讲也能听得懂,等到自己练习做题目的时候完全没有思路,做得很困难。

这多是因为熟练度不够引起的,你只是理解了一个概念,但你还没有记住它,还不能将它运用到实践中。

学习编程最终都需要多练习,在练习中熟练使用一个语法。

对于初学者而言,在练习的初期会觉得很困难是正常的,完全可以像临摹字帖一样,先跟着参考代码敲一敲并进行思考。

也许刚开始会觉得"模仿"和"对照"次数过多,常常自己写毫无思路,但这只不过是一个过程罢了。要切记,虽然努力在很多时候都没有什么用,但仍要相信"在一个较长的时间跨度上,努力总是比不努力更有收获。"。坚持下去,总有一天会拨云见日。

程序的概念

>(green!)[-] 程序相关概念

程序,计算机程序(Computer Program),指的是一组计算机能够 识别和执行 的指令,运行于计算机中,满足人们某种需求的信息化工具。
简单来说,程序就是电脑中的一个指令合集(代码),用来帮助我们完成现实中某个需求。

知道程序的概念后,我们重点来看:什么是Java程序?

>(green!)

程序是指令的合集,但是并不是什么指令都能够被计算机识别,而是存在一定规范或者说语法的。Java程序指的是通过Java语言编写的,符合Java语法的,能够被计算机识别和执行的指令合集。在Java的规范中,Java程序的指令合集(代码)必须遵循:

  1. 首先新建一个Java文件。
  2. 在文件中创建类(class),所有代码都必须写在类中。
  3. Java程序要想启动,必须有main方法,main方法是Java程序的入口方法。
  4. 所有需要执行的代码(指令),都必须 直接或间接 的写在main方法中。
  5. 任何要执行的代码(指令),都必须遵守Java语法规范。

相信很多同学已经发现了,一旦写出了不遵守上述规范或者不符合Java语法的代码:

Java的源文件就不能通过javac命令编译生成class字节码文件了,称之为 “编译失败”

在IDEA中写代码时,会表现为:语法错误处出现红色波浪线,点击会显示错误信息。这时启动main方法(如果有的话)就会报错,并在控制台打印编译失败的信息。(这里具体的图我就不贴了,你都可以自己尝试一下。)

关键字和保留字

>(green!)

Java语法的学习第一步,从认识Java的关键字和保留字开始~

这里请大家注意一个非常重要的细节:和C/C++一样,Java代码是严格区分大小写的~

也就是说"Hello"和"hello"是完全不一样的,这一点十分重要!

关键字

>(orange!)

什么是关键字(keyword)?关键字有什么特点?

关键字的定义是:关键字是被Java语法赋予特定含义的单词。

关键字的特点是:关键字都是合法的单词,而且单词字母必须全部小写。

总得来说,关键字是Java语法中具有特定、特殊含义的小写形式英文单词。

>(orange!)

关键字有什么作用?

其实上述定义已经说明了它的作用,关键字在Java语法中都有特定的含义,**它对编译器具有特殊意义,能够影响编译!**具体来说,关键字往往都用来表示一种程序的结构或者修饰一些程序的结构等等。当然更具体的含义,要针对不同的关键字来说明。

这里举一个非常常见的案例:

class是最常见的关键字之一,它用来表示当前代码中定义了一个类(这样的程序结构)。

修饰符

>(orange!)

在Java中,关键字总体可分为两大类:修饰符和非修饰符。修饰符是典型的关键字,如它的名字一样,修饰符是用来修饰"别人"的单词。比如用来修饰一个类,修饰一个方法等等的关键字都是修饰符。

修饰符(modifier)总体上还可以再分两类:

  1. 访问权限修饰符,例如:
    1. private
    2. 缺省的默认权限**(什么关键字都不写)**
    3. protected
    4. public
  2. 非访问权限修饰符,例如:
    1. final
    2. abstract
    3. static

>(orange!)

注:访问权限修饰符,其它修饰符,等到面向对象知识点时会详谈,这里大家可以先留个印象即可!

没有太大必要死记上述概念,简单了解即可,等用多了自然而然就熟练了。

非修饰符

>(orange!)

非修饰符实际上远比修饰符更多,非修饰符往往用来表示程序结构,表示要在程序中定义XXX等,就比如上面说的class就属于这个分类当中。当然还有一些其它的非修饰符,等到我们学到的时候再详细说。

保留字

>(orange!)

什么是保留字(reserved word)?

保留字的官方定义是这样的:

[-] 保留字的定义

保留字是对当前版本的Java,没有特殊含义的单词。

  1. 但是以后的版本中,Java官方可能会将其变成具有特殊含义的单词(也就是说可能升级为关键字)
  2. 即便以后也不打算升级为关键字,但是Java官方认为你不应该在Java代码中使用的单词,也会变成保留字。

总之,概括来说就是: 保留字就是那些Java官方不使用,也不让程序员在代码中使用的单词。

>(orange!)

Java当中的保留字是很稀缺的,以Java8版本为例,目前仅有两个保留字:

  1. const
  2. goto

上面已经说过了,保留字对Java代码来说没有任何含义,请不要在代码中使用保留字!

语法意义

>(orange!)

关键字和保留字对Java程序有显著影响,滥用它们会语法报错,编译失败。对于Java程序而言,结合我们目前的学习程度,必须需要知道是: 关键字和保留字均不能用作变量名、方法名、类名、包名等任何"名字"!

除此之外,由于日常开发我们都会使用诸如IDEA之类的集成开发环境,关键字和保留字是有特殊颜色标记的,如下图:

关键字保留字的颜色标记

参考上图,你能从代码中找到哪些关键字和保留字呢?

答:实际上,图片中深蓝色的单词,都是关键字。

>(red!)

课堂抽奖

以下哪些是关键字(保留字)?

class,HelloWorld,public,static,Const,void,main,String,System,goto

常见关键字(保留字)

>(green!)

注:标红的是保留字

Java关键字大全
关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式,遵循IEEE 754算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

上述关键字,绝大多数我们都会在JavaSE阶段学习和使用,很快就会学到。

注释

>(green!)

[-]关于注释的英文单词

英语单词**“annotation"经常被翻译成注释,但是在Java中"annotation”**应该对应注解(后面会讲什么是注解)。

而Java语法中的注释应该对应英语单词**“comment”**,这一点细节在查看英文文档时,特别需要注意。

什么是注释

>(green!)

[-] 什么是注释?

注释在任何编程语言中几乎都会出现,它起着解释说明源代码的作用。

在Java中,注释指的是可以嵌入到Java代码的任何位置的,一种解释说明性的文字。

这里要理清楚两个点:

  1. 注释可以放在Java代码的任何位置。
  2. 注释可以是任何解释性文字。

当然注释有自身的语法,不是随便就能够把文字写在源代码当中的。下面,我们来具体看一下注释的语法。

注释的语法

>(red!)

在学习任何注释格式前,首要的明确的一个问题是:

既然注释起着解释说明源代码的作用,那么一行或一段注释究竟解释哪一行或哪一段代码?

这是一个非常重要的问题!这里就给出明确的答案:

不管是一行注释或一段注释,都是为了解释说明,它临近的下面的一行或者一段代码!

>(green!)

Java支持三种注释的语法格式,分别是:

  1. 单行注释

    单行注释语法
    // 注释的文字
    
  2. 多行注释

    多行注释语法
    /*
    注释的文字
    注释的文字
    注释的文字
    */
    
  3. 文档注释

    文档注释语法
    /**
     * 注释的文字
     * 注释的文字
     * 注释的文字
     */
    

关于三种注释方式,用途是不同的:

  1. 单行注释。在解释说明单行或某几行代码时,如果仅需要简短的一句或几句话时,就使用单行注释。

    建议在代码中使用单行注释时,双斜线"//"和说明文字的中间应该加上一个空格。如下:

    // 注意有一个空格
    
  2. 多行注释。在解释说明单行或某几行代码时,如果简短的一句或几句话不能说清楚,就需要使用多行注释。

从上面说明不难发现,无论是单行注释还是多行注释,都是起着解释说明单行或某几行代码的作用!

>(green!)

那么文档注释起着什么作用呢?

文档注释:

在Java代码中,经常有两个大的语法结构需要被解释:

  1. 整个类
  2. 整个方法

文档注释,就是用来解释这两种结构的。出现了两种文档注释:

  1. 类注释
  2. 方法注释

Java中对于文档注释的写法,提供了明确的规范,即Javadoc规范。

符合Javadoc规范的文档注释可以使用javadoc指令,输出对应的说明文档。

官方JDK文档

我们常说的JDK文档,实际上就是根据官方JDK源码中文档注释,自动生成的。

注释的作用

>(green!)

注释有什么作用?除开上文说的解释说明源代码外,要分为两个部分来看待。

注释对Java程序的意义

>(green!)

注释行在Java程序中,会被编译器自动忽略掉,也就说注释仅仅存在于以下Java程序运行过程的,源代码级别!也正是因为这一点,所以注释才能放在Java代码的任何位置,才能写任何说明性文字,毕竟它不参与编译,不受编译器语法的检查。

Java程序运行原理

注:在Java当中空白行也会被编译器忽略掉,空白行和注释一样都不参与编译。

注释对程序员的意义

>(green!)

注释都是用英语,汉语这种自然语言去书写的,并且编译器会自动忽略它,显然注释是写给程序员看的。

优秀的程序员,应该养成良好的注释书写习惯。

注释的好处:

  1. 增加代码可读性,这样:

    1. 能够让自己在写完这段代码较长时间后,仍然能够通过注释很快理解代码。
    2. 能够让接手自己代码的人,也能够很快熟悉代码

    想一下,如果几百上千行代码从头到尾没有一句注释,过了两个月,大概就没什么人能够快速理解该段代码了。这一条是注释最主要的作用。

  2. 方便自己写代码的时候,记录程序的信息,想一想如果代码写着写着突然想记录一些数据,就只能依靠注释了。

  3. 写注释可以增加自己写代码时的逻辑性,比如在编码前先用注释标记出每一步应该完成的事情,这样写代码会更流畅。

  4. 注释也可以作为一种比较简单但十分好用有效的, 查找代码问题的方式。

    1. 将一部代码逻辑注释掉,然后运行程序,查看运行结果
    2. 反复注释不同的位置,反复测试,最终可以根据结果找到出现问题的代码逻辑,然后加以改正。

>(green!)

关于注释,因为它太重要了,好的注释能大幅度提升团队开发效率,所以大多数成规模的公司都对程序员的代码注释有要求。

关于如何写注释,请参考**Java开发编程规约**,在学习过程中,我们也要求大家按照规范书写注释,养成良好的习惯。

尤其是如何写类注释方法注释,这个文档中也有详细的说明。

>(red!)

以上,关于Java中的一些常见基本概念,你已经有所了解了,接下来看一下如何使用变量,这将是重点。

猜你喜欢

转载自blog.csdn.net/gezongbo/article/details/127127760