如何编写一个简单java程序

每日一言

People are born alone and die alone. But there isn’t a single person who can keep standing alone forever. – Shigaraki
from GUGURE! KOKKURI-SAN

一个简单java程序的组成

Java程序是一系列对象的集合,而这些程序通过调用彼此的方法来协同工作。

所以编写一个java程序的第一步是先编写一个,如一个最简单的HelloWorld程序:

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
}
}

首先我们定义了一个顶级的 public

1
2
3
public class HelloWorld{

}

这个类的名字叫 HelloWorld,我们的文件名也需要命名为 HelloWorld.java,在java中每个 .java文件都只能有一个顶级public类,但是可以拥有多个非public类

1
2
3
4
5
6
7
8
9
10
11
12
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
Car myCar = new Car();
myCar.display();
}
}
class Car{
public void display() {
System.out.println("This is a car");
}
}

类的定义可以出现在类调用的后面,这点好评,比c要方便

函数的入口main()

典型的main()方法声明如下:

1
2
3
public static void main(String[] args) {
// 程序逻辑代码
}
  1. public 访问修饰符:

    • 表示该方法是公开的,可以从任何地方访问。
    • JVM 需要能够从外部访问 main 方法,因此它必须是 public 的。
  2. static 关键字:

    • 表示该方法是静态的,属于类本身,而不是类的实例。
    • JVM 在执行程序时,不需要创建类的实例就可以调用 main 方法。因为 main 方法是程序的起点,如果需要实例才能调用,就陷入了先有鸡还是先有蛋的问题。

是否有static修饰的方法区别如下:

特性 static 方法 static 方法(实例方法)
调用方式 类名调用 对象实例调用
访问权限 只能访问静态成员变量,不能直接访问实例成员变量 可以访问所有成员变量
this 关键字 不能使用 this 可以使用 this
内存分配 类加载时分配 创建对象时分配
适用场景 工具方法、辅助方法、工厂方法等 操作对象状态、实现对象行为
  1. void 返回类型:
    • void 表示该方法不返回任何值。
    • main 方法通常不需要向 JVM 返回任何值,它的主要作用是启动程序的执行。
  2. main 方法名:
    • main 是一个特殊的方法名,JVM 约定用它作为程序的入口点
    • 方法名必须完全匹配main,区分大小写。
  3. String[] args 参数:
    • String[] args 是一个字符串数组,用于接收命令行参数。
    • 当您从命令行运行 Java 程序时,可以在程序名后面添加一些参数,这些参数会以字符串的形式传递到 main 方法的 args 数组中。
    • 例如,如果您运行 java MyProgram arg1 arg2 arg3,那么 args 数组中会包含三个字符串 "arg1", "arg2", 和 "arg3"
    • args 数组是可选的,如果不需要接收命令行参数,可以不使用。但是必须有,若删除参数则报错:
      1737103585740

如果我们对HelloWorld.java做一点小小的改动:

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println(args[0]); // 输出 Hello World
}
}

然后我们附加”HI,ulna!”,作为第一个指令运行如下:

1737101321078

一个java程序只能有一个main()方法,用于确定程序的入口点。

我们来看下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
Car.main(args); //static修饰main()无需创建实例直接使用
}
}

class Car{
public static void main(String[] args) {
System.out.println("This is a car");
}
}

虽然有两个main()方法,但是通过 javac编译后:

1737103085799

在同一个 .java文件中的多个类会被分开编译,每个类生成一个 .class文件,此时如果运行HelloWorld类,效果如下:

1737102581575

会以 HelloWorld.java中的main()方法作为程序的入口,Car中的main方法会被当做一个普通的名字为main的方法。若运行Car,运行结果如下:

1737102763211

此时Car中的main函数将会成为程序的入口。

所以更准确的说,一个类中只能存在一个标准的函数 public static void main(String[] args) 作为程序入口。

在此给出一个最简单的java程序创建模板:

1
2
3
4
5
6
// name.java
public class name {
public static void main(String[] args) {

}
}

如何编写一个简单java程序
http://blog.ulna520.com/2025/01/17/如何编写一个简单java程序_20250117_110034/
Veröffentlicht am
January 17, 2025
Urheberrechtshinweis