跳到内容

元数据卡

  • 前置知识:成功编译运行过 Hello World,见过常见错误
  • 预计时间:25 分钟
  • 完成标志:独立完成热身三道题,至少尝试一道挑战

"够了吗?"我问老陈师傅。

他摇摇头,"看了不等于会了。动手才是学编程的唯一方法。"

村口的老榕树下,我坐在木桩上,面前摆着三样东西——一段有 Bug 的代码、一个要改输出的任务、一个从零开始的挑战。


🏋️ 热身一:修 Bug(8 分钟)

下面这段代码有 三处错误。找出来并修复。

java
// Bug.java
public class Bug {
    public static void main(String[] args) {
        system.out.println("Hello Variable Village!")
        System.Out.println("Hello Coder!")
    }
}

要求: 保存为 Bug.javajavac Bug.java 看报错 → 逐条修复 → java Bug

🔍 自查:

  • [ ] System 大写了吗?
  • [ ] 每行末尾有英文分号 ; 吗?
  • [ ] Out 是小写 out 吗?

预期输出(修复后):

Hello Variable Village!
Hello Coder!

🏋️ 热身二:改输出(8 分钟)

java
// Greeting.java
public class Greeting {
    public static void main(String[] args) {
        System.out.println("Hello from Variable Village!");
    }
}

要求:

  1. 编译运行,确认看到 "Hello from Variable Village!"
  2. 把输出改成打印你的名字(比如 System.out.println("My name is 小明!");
  3. 重新编译运行

进阶尝试:

java
// 打印两行
System.out.println("Line one");
System.out.println("Line two");

// print vs println
System.out.print("This is ");
System.out.print("all on ");
System.out.println("one line!");

预期输出:

Hello from Variable Village!     ← 原始
My name is 小明!                 ← 你改之后
Line one                         ← 进阶一
Line two
This is all on one line!         ← 进阶二

🏋️ 热身三:凭记忆写你的第一个程序(6 分钟)

nano MyFirstProgram.java,凭记忆写出完整的 Hello World(类名必须是 MyFirstProgram),编译运行。

不要参考之前的代码。卡住了留意你记不住的是 main 签名还是 println

💡 提示:如果你完全卡住了,写 public class MyFirstProgram { public static void main(String[] args) { System.out.println("..."); } }

预期输出: This is my first Java program!


🧗 挑战一:println vs print

java
// PrintVsPrintln.java
public class PrintVsPrintln {
    public static void main(String[] args) {
        System.out.print("First ");
        System.out.print("Second ");
        System.out.println("Third");
        System.out.print("Fourth");
    }
}

预期输出:

First Second Third
Fourth

为什么 print 不换行,只有 println 换行?


🧗 挑战二:换行符 \n

java
// Escape.java
public class Escape {
    public static void main(String[] args) {
        System.out.println("Line1\nLine2\nLine3");
    }
}

预期输出:

Line1
Line2
Line3

\n 是转义序列——不显示成 \n 两个字符,而是换行。还有 \t(制表符)等。


🧗 挑战三:验证四条规则

在一个文件里写两个 main 方法——看看 Java 答不答应。为什么不允许一个类有两个同名方法?


练习清单

  • [ ] 热身一:修复了 Bug.java 的三处错误
  • [ ] 热身二:修改了 Greeting.java 的输出
  • [ ] 热身三:凭记忆写出了 MyFirstProgram.java
  • [ ] 挑战一:理解了 printprintln 的区别
  • [ ] 挑战二:学会了使用 \n 换行符
  • [ ] 挑战三:验证了四条语法规则

旅人笔记

犯错和改错,是这个阶段最重要的两件事。你写一百行正确的代码不一定能记住——但因为漏了一个分号被编译器骂过五分钟,从此你再也不会忘记分号。

别怕错误。错误就是老师。


下一步

恭喜!你已经走完了"Hello World"全部流程。现在你的程序只能输出固定的文字,但大多数程序需要处理变化的信息。

第2章:变量与类型

Built with VitePress | Software Systems Atlas