为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Java Main方法是静态的?

为什么Java Main方法是静态的?

小唯快跑啊 2019-06-17 15:02:23
为什么Java Main方法是静态的?Java的方法签名主()方法是:public static void main(String[] args){     ...}这种方法是静态的吗?
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

方法是静态的,因为否则会出现歧义:应该调用哪个构造函数?尤其是如果您的课程如下所示:

public class JavaClass{
  protected JavaClass(int x){}
  public void main(String[] args){
  }}

JVM是否应该调用new JavaClass(int)?它应该代表什么?x?

如果没有,JVM应该实例化吗?JavaClass而不运行任何构造函数方法?我认为不应该这样做,因为这将是特殊的-比如整个类-有时您有一个尚未初始化的实例,您必须在每个可以调用的方法中检查它。

有太多的边缘情况和歧义使得JVM在调用入口点之前必须实例化类是有意义的。怪不得main是静态的。

我不知道为什么main总是被标记public尽管如此。


查看完整回答
反对 回复 2019-06-17
?
catspeake

TA贡献1111条经验 获得超0个赞

这个main()方法C++C#Java是静态的
因为它们可以由运行时引擎调用。的主体中的代码必须实例化任何对象。main()剩下的就可以了

查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 602 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信