Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不调用静态方法;“主要”;从另一个班级到另一个班级?_Java_Static Methods_Main Method - Fatal编程技术网

Java 为什么不调用静态方法;“主要”;从另一个班级到另一个班级?

Java 为什么不调用静态方法;“主要”;从另一个班级到另一个班级?,java,static-methods,main-method,Java,Static Methods,Main Method,如果我有课: public class HelloWorld { public static String main(String[] args) throws IOException { public createMessage(){ String message = "Hello World!"; } } return message; //return of the main static method } 为什么我不能从另一个类调用main作为HelloWorl

如果我有课:

public class HelloWorld {
  public static String main(String[] args) throws IOException {

 public createMessage(){

 String message = "Hello World!";

  }

 }
 return message; //return of the main static method
}
为什么我不能从另一个类调用main作为
HelloWorld.main(args)

String msg = (String) HelloWorld.main(args);

System.out.println(msg);

按照我们调用静态方法的方式。

是的,您可以从另一个类调用main方法


但是,不应该从应用程序内部调用main()方法。main()方法应该用作应用程序的入口点,以启动程序,而不是用于递归执行应用程序内部的逻辑。如果您有再次需要的功能,您应该将其放在一个单独的方法中。

是的,您可以从另一个类调用main方法


但是,不应该从应用程序内部调用main()方法。main()方法应该用作应用程序的入口点,以启动程序,而不是用于递归执行应用程序内部的逻辑。如果您有再次需要的功能,您应该将其放在单独的方法中。

您的代码不是有效的Java代码。它不编译。我使用以下步骤修复了编译错误:

  • 将方法
    main
    的返回类型更改为
    void
  • 已删除
    抛出IOException
    ,因为没有抛出异常,编译器会对此进行投诉
  • 关闭方法
    main
    ,然后打开方法
    createMessage
  • 使方法
    createMessage
    static,因此可以从静态方法
    main
  • String
    作为返回类型添加到方法
    createMessage
  • 将return语句移动到方法
    createMessage
这是固定代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println(createMessage());
    }

    public static String createMessage() {
        String message = "Hello World!";
        return message;
    }
}
您可能不想自己从另一个方法调用main方法。主要方法是程序的入口点,这意味着JVM会自动调用它来启动程序。在main方法中,打印hello world消息。您可以通过使用方法
createMessage
创建消息来实现这一点。此方法完成执行后,将创建消息传递给方法
System.out.println()
,这是Java将文本输出到控制台的方法


通过替换这两行代码,可以进一步简化代码

        String message = "Hello World!";
        return message;
这一行:

        return "Hello World!";

您的代码不是有效的Java代码。它不编译。我使用以下步骤修复了编译错误:

  • 将方法
    main
    的返回类型更改为
    void
  • 已删除
    抛出IOException
    ,因为没有抛出异常,编译器会对此进行投诉
  • 关闭方法
    main
    ,然后打开方法
    createMessage
  • 使方法
    createMessage
    static,因此可以从静态方法
    main
  • String
    作为返回类型添加到方法
    createMessage
  • 将return语句移动到方法
    createMessage
这是固定代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println(createMessage());
    }

    public static String createMessage() {
        String message = "Hello World!";
        return message;
    }
}
您可能不想自己从另一个方法调用main方法。主要方法是程序的入口点,这意味着JVM会自动调用它来启动程序。在main方法中,打印hello world消息。您可以通过使用方法
createMessage
创建消息来实现这一点。此方法完成执行后,将创建消息传递给方法
System.out.println()
,这是Java将文本输出到控制台的方法


通过替换这两行代码,可以进一步简化代码

        String message = "Hello World!";
        return message;
这一行:

        return "Hello World!";

要调用一个方法,你需要编写可编译的代码。使用main方法做一些工作没有错。它通常用于两种情况(至少对我来说):懒惰或测试你写的东西。通常,当我有一个Java程序调用另一个Java程序时,我会将类或Jar作为一个新进程运行,这样它就不会共享内存空间、状态(OS级别)或全局应用程序变量。如果从当前JVM调用main方法,它将使用当前线程或新线程(如果您选择)。但是请不要在同一个JVM中执行此操作,除非您只是出于懒惰。Stefan的方法是最好的。要调用一个方法,你需要编写可编译的代码。使用main方法做一些工作没有错。它通常用于两种情况(至少对我来说):懒惰或测试你写的东西。通常,当我有一个Java程序调用另一个Java程序时,我会将类或Jar作为一个新进程运行,这样它就不会共享内存空间、状态(OS级别)或全局应用程序变量。如果从当前JVM调用main方法,它将使用当前线程或新线程(如果您选择)。但是请不要在同一个JVM中执行此操作,除非您只是出于懒惰。Stefan的方法是最好的。要从另一个类调用它,你要实例化HelloWorld的一个对象吗?有时,当我尝试在main下添加一个方法时,IDE根本无法识别它,Eclipse,它一直在告诉:Syntax error,insert“;”要完成localvariabledclarationstatement(1),您不能将一个方法声明插入到另一个方法中。这里,
main
也是方法,因此不能将方法声明插入到
main
方法中。(2)
HelloWorld
只有。这意味着没有必要创建它的实例。要从另一个类调用
main
方法,您可以像在问题中一样执行:
HelloWorld.main(新字符串[0])。它不返回值,只将其打印到控制台。你确定要这样做吗?不客气。然而,你可能想问一个新的问题,因为它似乎与这个问题有很大的不同