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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卢其龙 黑马帝   /  2012-1-10 14:34  /  3975 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态方法 调用 非静态方法怎么调用呢?
能实现吗?怎么实现

    class Program
    {
        static void Main(string[] args)
        {
           // x();  这里怎么调用
        }
        void x()
        {
        }
    }

7 个回复

倒序浏览
Program pg =new Program();
pg.x();

还有你main函数里面应该是(String [] args) 记得大写

评分

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

查看全部评分

回复 使用道具 举报
把非静态改为静态
static void x()
        {
        }

或者 在主函数里
Program pg =new Program();
pg.x();

评分

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

查看全部评分

回复 使用道具 举报
static void Main(String[] args)
这个是主函数,是程序入口。
回复 使用道具 举报
非静态方法不能通过类直接访问,必须通过类的实例对象才能访问;静太方法可以通过类直接调用,这也是静态与非静太的区别之一. 
回复 使用道具 举报
静态方法中是可以引用非静态变量的。前提是要先产生一个对象。我们最熟悉的main就是一个静态方法啊,你只有在初始化一个对象后才可以引用非静态变量
回复 使用道具 举报
刘建宇 黑马帝 2012-1-11 15:22:05
7#
创建Program对象调用方法就是了,你直接调用会报错
静态方法不能直接调用非静态方法
回复 使用道具 举报
静态方法及变量属于整个类,数据将会被存储在公共区域,
非静态方法及变量属于对象,要调用必须得知道是那个对象
的,所以在调用之前先创建一个对象,再用对象调用非静态方法
class Program
    {
        static void Main(string[] args)
        {
                 new   Program().void();             // 调用非静态方法
        }
        void x()
        {
        }
    }


评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马