黑马程序员技术交流社区

标题: 为什么不可以从一个static方法内部发出对非static方法的调用? [打印本页]

作者: hadexs    时间: 2013-7-3 23:39
标题: 为什么不可以从一个static方法内部发出对非static方法的调用?
为什么不可以从一个static方法内部发出对非static方法的调用?
作者: a767175432    时间: 2013-7-4 20:29
因为被static修饰的方法只有在该类对象创建出来的时候才会在内存中出现,被static修饰的方法是属于类,当类被加载到内存对象没被创建该方法同时被加载到内存中了,
直接从一个static方法内部发出对非static方法的调用,就会在内存中找不到那个非static的方法 所以不可以
作者: 徐鹏跃    时间: 2013-11-21 15:01
static是类的方法,成员方法是对象的方法,如果对象没有被创建 在static中方法成员方法,就会报错啊

作者: Love_apple    时间: 2014-2-26 16:08
public class Test extends B implements C
{
    public void printfX()
    {
        System.out.println("B.x = " + super.x);

        System.out.println("C.x = " + C.x);

        play();
    }

    public static void main(String[] args)
    {
        // testForJPlusPlus();

        // testForIPlusPlus();

        // if we use the same code as C/C++, the result is different

        // testForCPlusPlus();

        new Test().printfX();

    }
}

这个怎么解释?




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