黑马程序员技术交流社区

标题: main方法疑问 [打印本页]

作者: 孙浩    时间: 2012-9-19 14:11
标题: main方法疑问
本帖最后由 孙浩 于 2012-9-20 11:34 编辑

为什么main方法必须被声明为public static?为什么在main方法中不能

用非static成员?
作者: 陈俊来    时间: 2012-9-19 14:15
Main 定义为static的目的是为了要在不创建类实例的前提下,可直接调用Main方法。
定义为Public 是由于Main函数是程序入口点。
每一个程序执行的时候都对应一个虚拟机(你应该听说过虚拟机吧),虚拟机会首先找到类文件(class后缀,在这里就是a.class),然后虚拟机会对导入的class文件进行提取,得到其中的类型信息放入到方法区中(方法区暂时不用管,你就当成把这些信息成放到一个特定的地方),然后通过类的二进制文件找到这种main方法(就是最开始说到的那个)。

另外你说的那个其实不是static调用非static,因为在main方法中,你已经实例化了一个对象了,是通过对象调用的这个方法,而不是在static中直接调用的。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2