本课作品
制作控制台版服务器欢迎屏
程序不会猜你的意思。你写“欢迎”,它就说欢迎;少写一个符号,它可能连第一句话都说不出来。这一课,我们从一份完整程序出发,学会运行、控制换行、读懂报错,最后做出一个有自己风格的服务器欢迎屏。
开始前:无需编程经验
01 / 10
电脑怎样才会开口?

史蒂夫站在工作台前,想告诉伙伴:“先带火把,再进矿洞。”可是,电脑并不知道哪句话重要。它需要一条写得清清楚楚的指令。这正是编程最有意思的地方:把一个模糊想法,变成别人也能执行的步骤。
带着三个问题往下读
- 程序从哪里开始执行?
- 文字为什么要放在引号里?
- 说完一句话后,怎样决定要不要换行?
02 / 10
第一份完整程序:找到 main
新建 HelloWorld.java。文件名与 public class 后面的名字要一致,连大小写也要一致。如果工具已经生成 main,使用已有的入口,别再套一层模板。
完整程序 · HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("你好,方块世界!");
}
}运行结果
你好,方块世界!| 位置 | 作用 |
|---|---|
| class HelloWorld | 给这份代码中的类命名 |
| main(...) | 本课程序的执行入口 |
| System.out.println(...) | 把文字送到控制台 |
| 两对 { } | 外层是类,内层是 main 的范围 |
03 / 10
从源文件到运行结果

- .java写下源代码
- javac检查语法并编译
- .class得到字节码
- JVM执行程序并输出
保存文件后,开发工具通常会替你完成编译和运行。编译先检查代码是否符合 Java 规则;运行时,JVM 执行生成的字节码。程序仍可能在运行时遇到问题,因此“编译通过”只是第一关。
想看看工具替你做了什么?
选学:在文件所在目录执行的终端命令
javac -encoding UTF-8 HelloWorld.java
java HelloWorld04 / 10
print 和 println:换行由谁负责?
把控制台想成一张不断向下写的便笺。print 写完内容后停在原处;println 写完内容,再把下一次输出送到新行。引号里的空格也会原样出现。
- print写内容
停在同一行 - println写内容
在结尾换行 - 下一次输出从当前光标位置开始
片段:放在 main 中,单独运行
System.out.print("钻石");
System.out.print(" + ");
System.out.println("木棍");
System.out.println("第一层:草方块");
System.out.println("第二层:泥土");
System.out.println();
System.out.print("嘶……");
System.out.println("快跑!");运行结果
钻石 + 木棍
第一层:草方块
第二层:泥土
嘶……快跑!05 / 10
小符号不是装饰

代码中的符号各有职责。分号结束本课的声明或输出语句;花括号划定范围;圆括号装着方法需要的内容;英文双引号标出文字;双斜杠开始一条注释。
三份有问题的片段
故意写错:分别检查,不要整段复制运行
System.out.println("苦力怕来了")
System.out.println(“快跑!”);
System.out.Println("欢迎!");- 第一行缺少分号,补上 ;。
- 第二行用了中文弯引号,改成英文双引号 "。
- 第三行的 Println 大小写不对,应为 println。
06 / 10
注释:留给未来自己的说明

好注释解释的是选择背后的原因。半年后的你,往往和第一次读这段代码的朋友一样,需要一点背景。注释不会成为控制台输出,也不会替程序执行任务。
片段:放在 main 中,单独运行
// 先显示安全提示,再介绍今天的任务。
System.out.println("带上火把,避免迷路。");
/* 欢迎屏只负责展示文字。
输入和指令处理会在后面的课程学习。 */
System.out.println("今日任务:收集原木。");运行结果
带上火把,避免迷路。
今日任务:收集原木。07 / 10
第一次调试:让差异变成线索

看到红线,先停一下。找到第一条与你的文件有关的报错,读清文件名和行号,再检查附近的符号。一次只改一个原因,保存后重新编译。这样,你才知道是哪一步起了作用。
找错实验:这份程序故意不能编译
public class BugHunt {
public static void main(String[] args) {
System.out.println("我会找到它!")
}
}先回答,再动手
- 输出语句的末尾少了什么?
- 它属于编译错误,还是运行之后的错误?
- 修好后应该只输出哪一行?
08 / 10
小作品:服务器欢迎屏
一张好的欢迎屏会告诉读者:这里叫什么、谁来了、今天做什么、应该注意什么。先在纸上排好行,再让每一行对应一条输出语句。
- 边框开头和结尾
- 身份服务器与玩家
- 任务今天的目标
- 提示安全与趣味
完整程序 · ServerWelcome.java
public class ServerWelcome {
public static void main(String[] args) {
System.out.println("========================");
System.out.println("欢迎来到:方块探险营");
System.out.print("玩家:");
System.out.println("Alex");
System.out.println("今日任务:收集 10 个原木");
// 安全提示放在趣味提示前面。
System.out.println("安全提示:不要直直地向下挖");
System.out.println("趣味提示:苦力怕也想听课,请保持距离");
System.out.println("========================");
}
}09 / 10
验收:你的欢迎屏读起来顺畅吗?
上一页参考程序的完整输出
========================
欢迎来到:方块探险营
玩家:Alex
今日任务:收集 10 个原木
安全提示:不要直直地向下挖
趣味提示:苦力怕也想听课,请保持距离
========================- 找到入口main
- 控制输出print / println
- 核对符号引号与分号
- 修复差异一次改一处
三个小实验
- 只改服务器名字。预期:只有对应的一行发生变化。
- 把“玩家:”后的 print 改成 println。预期:Alex 会到下一行。
- 在边框后增加空行。预期:内容不变,视觉间距变化。
完成后,用自己的话解释每条语句。能改动代码并预测结果,比一字不差地抄下来更有用。
10 / 10
再往前走一小步
任选一个作品,写出预期输出
- 基础:写五行“我的生存第一天”,至少使用三次 println。
- 进阶:先用 print 拼出一行合成式,再用两行说明解释配方。
- 创造:用文字字符画一座小屋,至少七行高,检查每行的空格。
30秒自测
① 引号会出现在输出里吗?② println 的换行发生在内容之前还是之后?③ HelloWorld.java 中的 public class 可以叫 helloWorld 吗?
下一课:让程序记住变化
今天的文字是固定的。下一课,我们会给生命值、物品数量和玩家名贴上标签,让同一个名字在不同时间保存不同的值。
技术参考:Java 的输出 API 与语言规则见 docs.oracle.com。示例均以 Java 11 为目标验证;故事和插画用于解释概念。
TAKE IT WITH YOU
下载本课 PDF
完整课文、代码、图解与练习,选择你需要的语言。

