A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuehaotian 中级黑马   /  2013-12-22 15:37  /  1097 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

高信上说,main方法不属于所在的类,只是寄存在这个类中。
那么我想问:
(1)main方法,属于谁??
(2)还有什么养的方法 , 是不属于类的??

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 何必纠结这个问题。我们先把基础学好。.

查看全部评分

2 个回复

倒序浏览
一...对于第一个问题,main方法属于谁,我觉得竟然该方法
声明在了主类中,就属于这个类,至于为什么main的声明为:
public static void main(String args[]),因为这是java的规范(返回值为void,还有
必须有一个参数等相关内容,楼主可自行查相关的java规范文档).
又因为每个类要想被JVM虚拟机中执行,就必须要声明这个main方法,
因为JVM运行java程序时,会找这个main方法,如果没有就一定会报错,
同样如果main方法的格式错误,仍会报错.
二...再说main方法调用时不用实例化该类,是因为main方法有了public static做了限制,
        还有我觉得main不是在方法区,楼主可以做这个实验
  1.         public class Test'{
  2.      static {
  3.          System.out.println("方法去中的代码");
  4.      }
  5.      public static void main(String args[]){
  6.          System.exit(0);
  7.      }
  8. }
复制代码

可以看到,"方法中的代码"被打印出来,所以可以断定,main方法是在静态方法区中之后执行的
综上,main方法还是属于他所在的类
如果在详细的说main方法,那就要说到jvm虚拟机了,详细的我也不怎么懂,如果楼主有兴趣可以查阅相关资料

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
刚才我在MyEclipse测试了一下以下代码
  1. public class MainTest {
  2.         public static void main(String[] args) {
  3.                 Test2.main(null);
  4.         }
  5. }

  6. class Test2{
  7.         public static void main(String[] args) {
  8.                 System.out.println("Test**********main()");
  9.         }
  10. }
复制代码


结果能打印出"Test**********main()",由此可以看出,main方法是属于Test2的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马