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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 竹叶君子 中级黑马   /  2015-3-3 19:21  /  886 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态方法只能访问静态的成员(方法和变量),但是主函数也是静态的方法,为什么可以访问非静态的方法??

6 个回复

倒序浏览
主函数是被jvm加载的,存在于栈内存中。main区域是运算的场地。其他的是存储场地。
回复 使用道具 举报
本帖最后由 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();               
        }
}



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

捕获1.JPG

点评

不错  发表于 2015-3-4 17:14

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报 1 0
你给的例子很详细,明白了,谢谢!!
回复 使用道具 举报
同意楼上的答案
回复 使用道具 举报
看到前面的static了没有
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马