黑马程序员技术交流社区

标题: 主函数是静态的 [打印本页]

作者: 竹叶君子    时间: 2015-3-3 19:21
标题: 主函数是静态的
静态方法只能访问静态的成员(方法和变量),但是主函数也是静态的方法,为什么可以访问非静态的方法??

作者: sofeel    时间: 2015-3-3 20:00
主函数是被jvm加载的,存在于栈内存中。main区域是运算的场地。其他的是存储场地。
作者: yangruijing    时间: 2015-3-3 20:06
本帖最后由 yangruijing 于 2015-3-3 20:08 编辑

主函数是一个特殊的函数,作为程序的入口,被虚拟机调用。
静态函数中不能直接调用非静态方法,要通过类的实例化对象进行调用所以主函数也遵循了静态方法的使用规则
举例:public class test {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                //test ts=new test();//对类进行实例化
                //ts.print();//通过类的实例化对象,调用print()方法
                print_1();
        }
        public void print()
        {
                for(int i=0;i<10;i++)
                        System.out.print(i+" ");
        }
        public static void print_1()
        {
                test ts=new test();//对类进行实例化
                ts.print();               
        }[attach]64602[/attach][attach]64602[/attach]
}



捕获1.JPG (16.78 KB, 下载次数: 25)

捕获1.JPG

作者: 竹叶君子    时间: 2015-3-4 09:39
你给的例子很详细,明白了,谢谢!!
作者: 习惯就好    时间: 2015-3-4 09:55
同意楼上的答案
作者: 执念    时间: 2015-3-4 16:20
看到前面的static了没有




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