跳到主要内容

Java 第一个程序

欢迎来到Java编程的世界!在这一课中,你将学习如何创建和运行一个最基础的Java程序。就像学习任何一门新语言一样,我们通常从"Hello, World!"程序开始,它是编程世界中的传统第一课。

准备工作

在开始编写Java程序之前,你需要先完成以下准备工作:

  1. 安装Java Development Kit (JDK)
  2. 设置环境变量(可选,但推荐)
  3. 选择一个文本编辑器或集成开发环境(IDE),如VS Code、IntelliJ IDEA或Eclipse
提示

如果你还没有安装开发环境,请参考"Java环境搭建"章节完成安装。

创建第一个Java程序

让我们创建一个经典的"Hello, World!"程序:

步骤1:创建源文件

首先,创建一个名为HelloWorld.java的文件。注意,Java源文件的扩展名必须是.java

步骤2:编写代码

在文件中输入以下代码:

java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

步骤3:保存文件

将文件保存为HelloWorld.java。请注意,文件名必须与类名完全匹配(包括大小写),这是Java的规则之一。

步骤4:编译程序

打开命令行终端,导航到包含HelloWorld.java文件的目录,然后输入以下命令进行编译:

bash
javac HelloWorld.java

如果没有错误消息,编译器将生成一个名为HelloWorld.class的字节码文件。

步骤5:运行程序

使用以下命令运行程序:

bash
java HelloWorld

你应该会看到以下输出:

Hello, World!

恭喜!你已成功创建并运行了第一个Java程序!

代码解析

让我们详细分析一下这段看似简单的代码:

java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
  1. public class HelloWorld { ... } - 定义了一个公共类,名为HelloWorld。

    • 在Java中,每个程序至少要有一个类
    • 公共类的名称必须与文件名相同
  2. public static void main(String[] args) { ... } - 这是程序的入口点(主方法)

    • public - 访问修饰符,表示该方法可以被任何其他类访问
    • static - 表示该方法属于类,而不是类的实例
    • void - 表示该方法不返回任何值
    • main - 方法名,Java虚拟机会寻找这个特定的方法作为程序的起点
    • String[] args - 命令行参数,以字符串数组的形式传递给程序
  3. System.out.println("Hello, World!"); - 向控制台输出文本

    • System - 是Java的一个内置类
    • out - 是System类的一个静态成员,代表标准输出
    • println() - 是一个方法,用于打印文本并添加换行符

Java 程序的编译和执行过程

Java程序与其他编程语言相比,有一个独特的"编译一次,到处运行"的特点。下图展示了Java程序的编译和执行过程:

  1. 编写源代码(.java文件)
  2. 编译源代码生成字节码(.class文件)
  3. 执行字节码(通过Java虚拟机JVM)

这种设计允许Java程序可以在任何安装了JVM的设备上运行,不需要重新编译,实现了"一次编写,到处运行"的目标。

常见问题和解决方法

1. 类名与文件名不匹配

如果你的类名为HelloWorld,但文件名是helloworld.java,编译时会出现错误。Java对大小写敏感,请确保类名和文件名完全一致。

2. "找不到符号"错误

这通常是由于拼写错误或大小写错误导致的。例如,如果你写成system.out.println()(小写的's'),编译器会报告找不到system符号。

3. 缺少分号

每个Java语句都必须以分号结束。如果忘记添加分号,编译器会报错。

变化一下:带用户交互的程序

让我们稍微改进我们的第一个程序,添加一些用户交互:

java
import java.util.Scanner;

public class HelloUser {
public static void main(String[] args) {
// 创建Scanner对象用于读取输入
Scanner scanner = new Scanner(System.in);

// 提示用户输入姓名
System.out.print("请输入您的名字: ");

// 读取用户输入
String name = scanner.nextLine();

// 输出个性化问候
System.out.println("你好," + name + "!欢迎学习Java编程!");

// 关闭Scanner
scanner.close();
}
}

程序运行示例:

请输入您的名字: 张三
你好,张三!欢迎学习Java编程!

这个程序演示了如何使用Scanner类从控制台读取用户输入,并使用字符串连接(+运算符)将变量值与文本结合。

真实应用场景

虽然"Hello, World!"程序看起来非常简单,但它实际上包含了程序开发的基本步骤和结构。在实际开发中,同样的模式被扩展为更复杂的应用程序。

例如,一个简单的计算器应用程序可能以类似的方式开始,然后逐步添加更多功能:

java
import java.util.Scanner;

public class SimpleCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

System.out.print("请输入第一个数: ");
double num1 = scanner.nextDouble();

System.out.print("请输入第二个数: ");
double num2 = scanner.nextDouble();

System.out.println("两数之和为: " + (num1 + num2));
System.out.println("两数之差为: " + (num1 - num2));
System.out.println("两数之积为: " + (num1 * num2));

if(num2 != 0) {
System.out.println("两数之商为: " + (num1 / num2));
} else {
System.out.println("除数不能为零");
}

scanner.close();
}
}

总结

在本课中,你学习了:

  1. 如何创建和运行第一个Java程序
  2. Java程序的基本结构和语法
  3. Java程序的编译和执行过程
  4. 如何解决常见错误
  5. 如何从控制台读取用户输入
  6. 如何使用简单的输出和字符串连接

这些基础知识将为你进一步学习Java编程奠定基础。编程是一种实践性很强的技能,因此多练习是掌握它的关键。

练习题

  1. 修改"Hello, World!"程序,使其打印出你的名字。
  2. 编写一个程序,请求用户输入他们的年龄,然后计算并显示他们出生的年份(假设当前年份是2023)。
  3. 扩展SimpleCalculator程序,添加取余(%)操作。

延伸阅读

  • Java官方文档:Getting Started with Java
  • 命令行参数:尝试使用args参数向你的程序传递信息
  • 了解更多关于Java虚拟机(JVM)如何工作的知识
提示

记住,编程学习是一个过程,不要因为遇到错误而气馁。事实上,调试错误是提高编程技能的重要部分!