是否可以从一个 static 方法内部发出对非 static 方法的调用?

参考解答

不能直接调用,必须创建该对象实例才行。

  • 非static方法(即成员方法或称为实例方法),必须由对象实例来调用执行。

  • 但非static方法内部,可以直接使用static方法,因为static方法是属于类的,对该类所有实例都可见。

例1:

class A {
   public static void m1() {
     m2(); // 编译出错,可以修改为 new A().m2();
   }
   public void m2() {
   }
}

例2:

class A {
   public static void m1() {
   }
   public void m2() {
     m1(); // 可以,其实是调用 A.m1() 省略了类名而已
   }
}

results matching ""

    No results matching ""