为什么Java里main方法有个static?
在 Java 中,main 方法的声明通常如下:
public static void main(String[] args) {
// do something ...
}
1
2
3
2
3
如果你刚学习 Java,那么肯定会对 main 方法声明里的 static
产生兴趣,它到底意味着什么?
我们都知道 main 方法是程序的 “入口”,但是不管是老师还是各种教程,他们在跟初学者讲解 main 方法的时候,几乎都对 static
这个关键字闭口不提,要么就是一带而过。比如他们可能会这样说:“先别管那么多,反正每次这样敲就行了”。
这也情有可原,因为 static
多少涉及了面向对象的概念。跟初学者讲吧,又很难把它讲清楚,不讲吧,初学者就是觉得别扭。
但是,老师不教我们就不学了吗?如果不去深究一番,那初学者就永远是初学者。
当我们学过面向对象之后再回头来看就不那么别扭了。
# Static members
静态成员代表的是类和所有实例 “公有” 的。
静态成员有三种:
- 静态变量 Static variables
- 静态常量 Static constants
- 静态方法 Static methods
前两者可合并为静态字段(Static fields)。此时静态成员可分为两种:静态字段、静态方法。
回忆一下,我们每次要在 main 方法中使用其他类的字段或方法时,是不是需要先实例化这个类?或者我们使用一些工具类(Utility class)时,是不是直接用类名调用字段或方法?
这些都跟 static
方法的特性有关。
static
方法的特性:
- 静态方法内只能访问静态字段,不能访问非静态字段
- 静态方法内不能调用实例方法(Instance method)
- 静态方法内不能使用
this
关键字,静态成员是 “公有” 的
# // 未完待续。。。
编辑 (opens new window)
上次更新: 2022/12/03, 17:31:39