【问题标题】:why do we use java files without main ? What purposes does it meet ? How useful it is .?为什么我们使用没有 main 的 java 文件?它满足什么目的?它有多大用处。?
【发布时间】:2015-03-30 18:44:22
【问题描述】:

我是 java 编程的新手,我刚接触到一个由许多文件组成的 java 程序,只有一个文件有 main 函数,而其他文件没有。我真的不明白为什么我们不在每个 java 文件中都有一个 main 函数。

【问题讨论】:

  • 您认为main 方法的用途是什么?
  • FOR 主要调用函数
  • 根据定义它是您的应用程序的入口点,随后将调用您的程序所需的所有其他方法。
  • 不是你家的每个房间都需要前门!

标签: java file main


【解决方案1】:

不是每个文件都需要一个“主”函数。例如,您可能想要导入具有特定函数或类的文件。在这种情况下(没有“main”函数的 java 文件),java 文件只是代表一段代码,它被添加到您的程序中。所以它不需要一个单独的“main”函数,如果你已经有的话。

【讨论】:

    【解决方案2】:

    在 java 中,main() 是程序/应用程序的入口点。有时在应用程序中,我们只需要一个入口点来启动程序,然后使用其他必要的代码。

    但并非所有应用程序都必须需要main() 方法——例如容器启动应用程序/程序的 Web 应用程序或 Java 小程序。

    【讨论】:

      【解决方案3】:

      每个 Java 程序都必须有一个入口点,并且该入口点必须具有特定的签名。正如您所注意到的,public static void main(String[] args)

      之后,作为入口点的类可以创建其他类的实例和/或调用它们的方法,或调用静态类级方法。这些类不需要有入口点,因为程序已经在 J​​ava 虚拟机 (JVM) 中运行(执行您的代码)。

      您会注意到,新手(有时甚至是经验丰富的)程序员常犯的错误是尝试运行运行时环境找不到入口点的程序。例如,Eclipse: Java, no main method found(在此示例中,问题在于 OP 的方法签名错误)。运行时必须找到一些东西来运行。

      如果您的代码将由其他代码运行(例如,您正在开发一个库或 API,其中包含将用作另一个应用程序的部分的功能)它可能不会你有必要有一个主要的方法。如果您使用 IDE 查看一些标准库的 .jar 文件,您应该会发现其中很少有具有 main 方法的类 - 这是因为它们不打算单独运行,而是在上下文中运行另一个应用程序。

      【讨论】:

        【解决方案4】:

        java 中的public void main(String args[]) 方法是程序的入口点。如果直接运行,会从main方法开始。但是,并非您可能在 Java 中创建的每个类都是可接受的入口点。事实上,在许多应用程序中,您应该只有一个main 方法。一般不需要太多。一些 java 库根本没有 main 方法。这段代码通常被设计成可以被其他java代码使用,并且通常没有明智的方式来运行自己。它不是为此而设计的。它旨在帮助其他程序。

        没有main 方法的类用于a) 为其他java 程序(例如依赖项)提供功能,b) 为通过main 方法调用的程序提供附加功能。

        这里有几个示例文件来说明第二个。

        MainExample.java

        public class MainExample{
            public static void main(String args[]){
                OtherClass other = new OtherClass()
                other.doExpensiveComputation1();
                other.doExpensiveComputation2();
            }
        }
        

        OtherClass.java

        public class OtherClass{
            public void doExpensiveComputation1(){
                //do stuff here
            }
            public void doExpensiveComputation2(){
                //do other stuff here
            }
        }
        

        现在,您可能会问,“我不能在主类中编写这些方法吗?”。在某些情况下,答案可能是肯定的,但对于更复杂的代码,通常不是。在某些情况下,这将是不切实际的,因为它使主类过于混乱而无法跟踪。跟踪将其类保存在不同文件中的代码要容易得多。

        【讨论】:

          【解决方案5】:

          Java 程序的执行总是从 Main 方法开始。具有 main 方法的类是程序的入口点,从那里您可以获得所需的其余功能。

          如果您愿意,您可以在每个 java 文件中包含 main 方法,这将作为您程序的多个入口点。

          【讨论】:

            猜你喜欢
            • 2010-09-09
            • 1970-01-01
            • 2011-08-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-07-28
            相关资源
            最近更新 更多