不能从static上下文之外引用static方法

151 阅读1分钟

不能从static上下文之外引用static方法。因为static方法是属于类的,而不是属于类的实例。当你在非static上下文中引用static方法时,编译器会报错。

例如,考虑一个名为"MyClass"的类,其中有一个名为"myStaticMethod"的static方法。你无法在一个非static方法中直接调用这个static方法,如下所示:

	public class MyClass {  

	    public static void myStaticMethod() {  

	        System.out.println("This is a static method.");  

	    }  

	      

	    public void myNonStaticMethod() {  

	        myStaticMethod(); // 这是错误的!  

	    }  

	}

你需要使用类名来调用static方法,如下所示:

public class MyClass {  

    public static void myStaticMethod() {  

        System.out.println("This is a static method.");  

    }  

      

    public void myNonStaticMethod() {  

        MyClass.myStaticMethod(); // 这是正确的。  

    }  

}

这样做是正确的,因为static方法需要使用类名来调用。在非static上下文中,你可以使用类名来调用static方法,因为非static方法有隐式的"this"引用,它引用了当前实例的类。然而,你不能直接在非static方法中调用static方法,因为static方法是类级别的,而不是实例级别的。