2015-03-30 151 views
-1

我是java编程新手,刚刚遇到一个由多个文件组成的java程序,其中只有一个文件有主函数,而其他文件没有。我并没有真正理解为什么我们没有在每个java文件中都有主函数。为什么我们使用没有main的java文件?它满足什么目的?它有多有用。?

+0

你认为'main'方法用于什么? – 2015-03-30 18:44:56

+0

主要调用函数 – 2015-03-30 18:47:14

+0

按定义*它是您的应用程序的入口点,随后将调用您的程序所需的所有其他方法。* – 2015-03-30 18:47:45

回答

1

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

0

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

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

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

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

0

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

但并不是所有的应用程序都需要一个方法 - 像容器启动应用程序/程序的web应用程序或java applet。

0

java中的public void main(String args[])方法是程序的入口点。如果它直接运行,它将从主要方法开始。然而,并不是你可能用Java创建的每个类都是可接受的入口点。事实上,在许多应用中,您应该只有一个main方法。通常没有太多需要更多。一些java库没有任何地方的主要方法。该代码通常被设计为可以被其他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 
    } 
} 

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

0

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

如果你想要,你可以在每个java文件中使用main方法,它将作为你程序的多个入口点。

相关问题