如何编写一个简单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 |
|
首先我们定义了一个顶级的 public
类
1 |
|
这个类的名字叫 HelloWorld
,我们的文件名也需要命名为 HelloWorld.java
,在java中每个 .java
文件都只能有一个顶级public类,但是可以拥有多个非public类
1 |
|
类的定义可以出现在类调用的后面,这点好评,比c要方便
函数的入口main()
典型的main()方法声明如下:
1 |
|
public
访问修饰符:- 表示该方法是公开的,可以从任何地方访问。
- JVM 需要能够从外部访问
main
方法,因此它必须是public
的。
static
关键字:- 表示该方法是静态的,属于类本身,而不是类的实例。
- JVM 在执行程序时,不需要创建类的实例就可以调用
main
方法。因为main
方法是程序的起点,如果需要实例才能调用,就陷入了先有鸡还是先有蛋的问题。
是否有static修饰的方法区别如下:
特性 | static 方法 |
非 static 方法(实例方法) |
---|---|---|
调用方式 | 类名调用 | 对象实例调用 |
访问权限 | 只能访问静态成员变量,不能直接访问实例成员变量 | 可以访问所有成员变量 |
this 关键字 |
不能使用 this |
可以使用 this |
内存分配 | 类加载时分配 | 创建对象时分配 |
适用场景 | 工具方法、辅助方法、工厂方法等 | 操作对象状态、实现对象行为 |
void
返回类型:void
表示该方法不返回任何值。main
方法通常不需要向 JVM 返回任何值,它的主要作用是启动程序的执行。
main
方法名:main
是一个特殊的方法名,JVM 约定用它作为程序的入口点。- 方法名必须完全匹配为
main
,区分大小写。
String[] args
参数:String[] args
是一个字符串数组,用于接收命令行参数。- 当您从命令行运行 Java 程序时,可以在程序名后面添加一些参数,这些参数会以字符串的形式传递到
main
方法的args
数组中。 - 例如,如果您运行
java MyProgram arg1 arg2 arg3
,那么args
数组中会包含三个字符串"arg1"
,"arg2"
, 和"arg3"
。 args
数组是可选的,如果不需要接收命令行参数,可以不使用。但是必须有,若删除参数则报错:
如果我们对HelloWorld.java做一点小小的改动:
1 |
|
然后我们附加”HI,ulna!”,作为第一个指令运行如下:
一个java程序只能有一个main()方法,用于确定程序的入口点。
我们来看下面的代码:
1 |
|
虽然有两个main()方法,但是通过 javac
编译后:
在同一个 .java
文件中的多个类会被分开编译,每个类生成一个 .class
文件,此时如果运行HelloWorld类,效果如下:
会以 HelloWorld.java
中的main()方法作为程序的入口,Car中的main方法会被当做一个普通的名字为main的方法。若运行Car,运行结果如下:
此时Car中的main函数将会成为程序的入口。
所以更准确的说,一个类中只能存在一个标准的函数 public static void main(String[] args)
作为程序入口。
在此给出一个最简单的java程序创建模板:
1 |
|