正在加载...

第一个 Java 程序

这个文件你已经运行过了,屏幕上出现的是 mint。这一页还是守着同一个文件,只问一个不同的问题:文件里哪一行写出了那个词,哪些行什么也没有写?Java 不用重新安装,上一页的版本信息保持原样就行。打开 Mint.java,从上往下读。你要解释的屏幕仍然只有一行,这一行就是 mint。

文件不止一行,所以第一反应往往是:文件的每一行都会变成屏幕上的一行。这个想法不对,这一页后面会说明为什么。有三行是在给东西起名字,而这三行里真正往屏幕上写的只有一行。花括号 { 和 } 把这些行圈在一起,它们同样什么也不写。等你拿着文件,能用手指点出那一行负责写的,这一页的任务就完成了。下一页会往文件里加一条屏幕不会显示的注释,它不会改变 mint。

整个文件

java
public class Mint {
    public static void main(String[] args) {
        System.out.println("mint");
    }
}

第一行给文件起名字

第一行是 public class Mint。请把它当成三个各有任务的词来读,不要当成一句屏幕会打印出来的话。public 的意思是别的代码可以使用这个文件,屏幕上看不到 public 这个词。class 的意思是这个文件在定义 Java 里一个有名字的单位,屏幕上同样看不到 class 这个词。Mint 是这个单位的名字。磁盘上的文件叫 Mint.java,正是因为这个名字是 Mint。如果你改了这一行里的名字,文件名也要跟着改,否则 javac 会拒绝这个文件。这条规矩说的是文件名,不是屏幕。再看一眼上一页的屏幕:屏幕上显示的不是 Mint,而是 mint。大写的 M 和小写的 m 不是同一个词。第一行从来不会把自己的名字写到屏幕上。

这一行末尾有一个左花括号 {。和它配对的右花括号 } 是文件的最后一行。夹在这两个花括号之间的一切,都属于 class Mint。花括号就像围栏,告诉 Java 这个单位从哪里开始、到哪里结束。围栏不是给屏幕看的字。在 mint 旁边你看不到 { 或 }。如果你把左花括号删掉,文件就坏了,javac 不会再保持安静,而是写出一条错误。那条错误不是这一页要讲的内容。这一页里两个花括号都保留着,屏幕仍然是 mint。

main 那一行是 Java 开始的地方

下一行是 public static void main(String[] args)。有人问程序从哪里开始,大家会指向这一行,说到开始,他们没有错。错在接着说屏幕上显示 main。你输入 java Mint 的时候,Java 会去找一行长成这个样子的代码,从这里开始运行。开始不等于写出来。这一行里的词,是在交代怎么开始,它们不是给屏幕的词。

把这些词一个一个拿出来,每一个都和屏幕对照一下。public 在这里同样表示这一行可以从文件外面启动。static 的意思是 Java 不用先造出一个对象,就能启动这一行。对象你还没有学到,所以你只需要知道:这一行必须有 static 这个词,而且它不会被打印出来。void 的意思是这一行不会把任何值交还给调用它的地方。这一页没有什么调用者,屏幕上也没有 void。main 是 Java 要查找的名字,这个名字必须是 main,就是这四个字母,否则 java Mint 就不会从这个文件开始运行。可屏幕上依然没有这四个字母。String[] args 是留给你在程序名后面可以输入的词的位置。你没有多输入任何词,你只输入了 java Mint。这一次运行里 args 是空的,String 和 args 也都不会出现在屏幕上。

所以,关于 main 这一行,有两件事可以同时成立。Java 确实是从那里开始的。而屏幕从这一行一个词也没有收到。如果你的目光停在 main 上,只是因为它坐在文件中间,那就把目光移开。你对屏幕记得的那个词是 mint,而 mint 没有写在这一行里。

里面那一行写出 mint

在 main 那一行里面,在它自己的花括号之间,还有一行。这一行是 System.out.println("mint"),往屏幕上写的就是它。它在文件里向右缩进,是为了让你看出它在 main 里面。缩进是空格,空格也不会被写到屏幕上。Java 运行这一行,是因为它位于程序开始的那一行里面。屏幕用到的,是里面这一行写出的内容,外面那一行的名字用不上。

从左往右读里面这一行。System.out 就是屏幕,是写出各行的地方。println 的意思是:写出这个,然后结束这一行。括号里的部分就是要写出的内容。括号里,mint 这个词夹在双引号之间。引号标明 mint 是文本,但引号本身不是文本的一部分。在心里把引号拿掉,剩下的词就是 mint,这就是整个屏幕。不过在文件里要把引号留着,没有引号,javac 就不会把 mint 当成文本。末尾的分号是在向 Java 表示这一行写完了。屏幕上你看不到分号。你看到的是 mint,然后这一行结束,因为 println 让它结束了。程序写完 mint 也跟着结束。

下面把这行负责写的代码单独拿出来,这样别的行就挡不住它了。

只有这一行往屏幕上写

java
System.out.println("mint");

java Mint 这个命令里没有任何东西选定了 mint 这个词,命令只说出文件的名字。这个词来自引号。如果引号里是另一个词,屏幕上就会显示那个词,不过这一页没有这样做。这一页里引号里放的是 mint,所以屏幕是 mint。一行,没有第二行。屏幕上没有引号,没有 main 这个词,也没有 Mint 这个词。

📊 屏幕显示的是哪一行

这一行 屏幕
public class Mint 这一行什么也没有
public static void main(String[] args) 这一行什么也没有
System.out.println("mint") mint

人们常常读错的地方

最常见的错误,是从上往下读文件,就以为最眼熟的那个词是输出。main 看起来很重要,它也确实重要,因为没有它 Java 就不会开始运行这个文件。但重要不等于输出。你可以用手指盖住 main 那一行,负责写的仍然是 System.out.println("mint")。可如果你盖住负责写的那一行,就解释不了屏幕了。另一个错误,是说屏幕显示 Mint,因为文件和 class 都叫 Mint。屏幕用的是引号之间的词,那个词是小写 m 拼出来的。第三个错误是数行数。文件里能看到好几行、好几个花括号,屏幕上只有一行。花括号、public、static 和 void 这几个词、main 这个名字、Mint 这个名字,运行之后全都还在文件里。运行不会删掉它们,也不会把它们打印出来。

你可以拿自己已经做过的那次运行来核对。javac Mint.java 没有输出任何行。那份安静说明文件被接受了,main 那一行和花括号也都没有问题。java Mint 输出了 mint。那一个词,是 println 那一行在干活。如果你现在在同一个文件夹里再运行一次 java Mint,屏幕又是 mint。这一页里文件没有改,所以屏幕不可能变。

现在你可以把手指放在 System.out.println("mint") 上,说屏幕就是从这一行来的。你可以把手指放在 public static void main(String[] args) 上,说 Java 从这里开始,而 main 这个词不在屏幕上。你可以把手指放在 public class Mint 上,说这个名字和文件相配,和屏幕不相配。下一页会在文件里放一条注释。注释是写给读文件的人看的,屏幕仍然是 mint,因为注释不是第二个 println。

屏幕来自一行

屏幕显示 mint。System.out.println("mint") 写出了这个词。引号不在屏幕上。带 main 的那一行不在屏幕上。第一行 public class Mint 不在屏幕上。没有第二行。

🧠 测试您的知识

准备开始

测试您的知识

通过这个互动测验挑战自己,看看你对这个主题的理解程度如何

❓
6
问题
🎯
70%
及格要求
♾️
∞
时间
🔄
∞
尝试次数

📝 说明

  • 仔细阅读每个问题
  • 为每个问题选择最佳答案
  • 您可以随时重新参加测验
  • 您的进度将显示在顶部