Java语法

现在你应该对Java有一定的认知了。现在是时候去研究Java的语法了。本章并不会涉及到Java语言语法的每个小细节,只会讲解一下语法的大概。后面的章节会针对语法的各个方面进行详细讲解。

Java文件

所有的Java代码都必须存放在后缀名为 .java的文件里面。比如像是 HelloWorld.javaMyApp.java这种文件。许多类似这样的 .java的文件就组成了一个Java应用。

Java语法

Java文件可以包含这些元素:

  • 包声明
  • import声明
  • 类型声明
    • 字段
    • 类初始化器
    • 构造方法
    • 方法

Java文件也可能包含评论和注释,这些会在后面章节讲解。

下面的 .java文件示例包含了上面提到的所有元素,你可以通过这个例子认识到 .java文件的基本语法:

package javacore;

import java.util.HashMap;

public class MyClass {

    protected final String name = "John";

    {
        //class initializer
    }

    public MyClass() {
    }

    public String getName() {
        return this.name;
    }

    public static void main(String[] args) {
    }
}

这个例子包含的几个Java语法元素,每个部分会在下面几个小节中介绍。

包声明

上面的示例中的第一行是包声明。更确切地说就是以下这部分:

package javacore;

包声明的格式就是关键字 package,加上文件所在的包的名字。 .java文件都应该放在与包名相匹配的文件目录中。包和包声明的更多详细知识将在Java 包章节进行讲解。

import声明(导入声明)

示例中第二行代码就是一个导入声明:

import java.util.HashMap;

在这个例子中,我们只有一个导入声明但是我们也可以有多个引入声明,每个声明可以单独占据一行。

导入声明是告诉Java编译器此Java文件将会使用什么其他Java文件。Java文件只需要导入那些与其不在同一个Java包里面的Java文件。

类型声明

示例中的第三行代码是一行类型声明。在Java中,类型可以是class(类),abstract class(抽象类),interface(接口),enum(枚举)或者annotation(注解)。

在本例子中,声明的是一个类。类型声明是被 {}分隔开的。正如你看到的那样,{与类型声明处于同一行,而 }处于最后一行。

public class MyClass {

字段声明

示例中第四行代码是一个字段声明,它是以 ;结束的。更多关于字段的的知识请参考Java字段章节。一种类型(class/interface/enum)可以有多个字段。在本例子中只有一个字段:

protected final String name = "John";

类初始化器

第五行代码是一个类初始化块。它以一个{开始,以}结束。在这个块中,你可以将初始化代码放到这里,它可以由类创建实例调用。在这个示例中,块是空的。块中的文本只是一个注释。Java的编译器会忽略它。

{
    //class initializer
}

类初始化器也可以是静态的。然后,它们在类加载时已经被执行了,并且只会执行一次,因为类只在Java虚拟机中加载一次。下面一个静态初始化代码块的例子:

static {
    //static class initializer
}

请注意块之前的关键字 static,它使类初始化程序块成为静态类型。

构造方法

第六块代码是一个构造方法。构造方法与类初始化方法类似,除了可以带参数。更多构造方法的知识请参考Java构造函数章节。一个类可以有多个构造方法,虽然这个例子只有一个。

public MyClass(){

}

方法

第七个元素(或块)是一种方法。当你创建一个类的实例(一个对象)时,这个对象也就拥有可以执行的方法。这些方法有时也被称为“实例方法”,因为在调用这些方法之前需要对象的一个​​实例。有更多方法的知识请参考Java方法。下面是上例中的方法声明:

public String getName() {
    return this.name;
}

第八块是一个静态方法。静态方法属于类,不属于类的对象。这意味着你可以调用通过类来调用静态方法,而不需要创建一个类的对象。

public static void main(String[] args) {
}

类型声明结束

如前所述,示例中的最后一行是类型声明的结尾。

}

这意味着将不再有Java代码作为声明类型的一部分。

下一篇: Java变量

results matching ""

    No results matching ""