繁体   English   中英

Java中的静态方法可以调用非静态方法

[英]Static method in java can call non static method

有人说在Java中我们不能从静态方法中调用非静态方法。这到底意味着什么?我们总是可以使用对象调用非静态方法frm static。

这是一个很好的代码段,以说明其含义:

class MyClass{

    static void func1(){
        func2(); //This will be an error
    }

    void func2(){
        System.out.println("Hello World!");
    }

}

要调用非静态方法,您需要一个实例(对象)-因为这些方法属于实例,并且通常仅在实例的上下文中才有意义。

静态方法不属于实例-它们属于类。 因此,无需先创建实例,只需调用MyClass.doSomething()

void foo(){
  MyClass.doSomething();
}

但是,只要您首先创建一个实例,就可以从静态方法中调用非静态方法。

static void bar(){
  MyObject o = new MyObject();
  o.doSomething();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM