在学习到静态方法时, 不明白为什么主方法main是需要用到静态方法,而不是用非静态方法, 求各位大师指点

解决方案 »

  1.   

    非静态方法需要一个对象才能执行,而static方法只需类就可以执行作为一个入口方法,刚开始哪来的对象呢?
      

  2.   

    Java是面向对象的语言。。就是说Java程序是有一个一个的类组成的。。如果是一般的非静态方法,那么,只有在创建对象之后,才能调用一般的非静态方法。但是main函数是整个程序的起点,main函数不可能等到哪个对象创建了之后然后去调用它。。然而静态方法可以允许在创建对象之前就调用该方法。。自然的。。main方法必然是静态的了
      

  3.   

    虚拟机只认这个方法!
    这是SUN公司规定的,如果设计JAVA的时候规定用start方法,那我们现在也得照用!
    另外,1,2楼说得对
      

  4.   

    看来你得好好研究一下static关键字在变量,方法,代码块的用意
      

  5.   

    对!这是sun的规定,楼上的解释也合理!因为设计成这样!
      

  6.   

    废话!
    即使是JVM,它也要new你一个对象才能执行你的方法吧?
    但是万一你没有提供默认的构造方法,或者构造函数是私有的,JVM怎么new?
    而static直接就可以调用了。
      

  7.   

    不错有拔尖的精神...你去向sun申请下嘛..
      

  8.   

    因为用static修饰的方法或变量是在编译时运行或分配空间的,main用static修饰后,程序就能自动找到程序的main的入口。
      

  9.   

    那在本类中再定义一个静态方法main1(),那运行时会执行该方法吗?如果是否,凭什么就main()方法是主入口?
      

  10.   

    java.c 文件中,有一个类JNIEnv, JNIEnv有一个方法GetStaticMethodID,通过这个方法,来调用main函数。这个方法会判断 main 方法是否是public statis 方法,如果是,才会调用main方法。
      

  11.   

    main方法作为程序的入口点设计成static是为了让java虚拟机在对象没有创建之前可以调用