Java 中的主方法必须是静态的吗?



main方法(你在类中的Java请求)必须是静态的吗?例如,我有此代码

public class Sheet {
    public static void main(String[] args) {
        myMethod();
    }
    public void myMethod() {
        System.out.println("hi there");
    }
}

这给了我错误

无法从 main 对非静态调用方法进行静态引用

如果我说清楚了,我从main方法调用的任何方法都必须是静态的,我从静态方法调用的每个方法都必须是静态的

为什么我的整个班级(如果我们更进一步,我的整个程序)和方法必须是静态的?我怎样才能避免这种情况?

并非所有方法都必须是静态的,只有应用程序的主入口点。所有其他方法都可以保持非static,但您需要使用类的引用才能使用它们。

代码的外观如下所示:

public class Sheet {
    public static void main(String[] args) {
        Sheet sheet = new Sheet();
        sheet.myMethod();
    }
    public void myMethod(){
        System.out.println("hi there");
    }
}

这里解释了您的担忧的解释(没有必要在这里复制所有信息):

  • 为什么 Java 主方法是静态的?
  • "静态"关键字在类中有什么作用?
  • 通俗地说,"静态"在Java中是什么意思?

必须static main方法,因为这是程序中该运行配置的单一入口点。

static方法绑定到类,因此它无法知道该类的单个实例。

您可以通过实例化Sheet类来调用myMethod

new Sheet().myMethod();

创建一个实例:

public class Sheet {
    public static void main(String[] args) {
        Sheet sheet = new Sheet();
        sheet.myMethod();
    }
    public void myMethod(){
        System.out.println("hi there");
    }
}

是的,main 方法必须是静态的,因为我们不会为 main 方法创建任何对象。静态方法可以在类加载时直接调用。由于它们是在类加载时加载的,因此我们不必为其创建任何对象!

众所周知,静态主要用于内存管理。所有静态方法和变量都可以直接使用类名访问。当然,我们可以为静态方法和变量创建对象来访问它们。但这是对记忆的浪费。

并非所有方法都需要是静态的。根据您的规定应用,我们可以使用静态方法。

相关内容

  • 没有找到相关文章

最新更新