我是java编程新手,刚刚遇到一个由多个文件组成的java程序,其中只有一个文件有主函数,而其他文件没有。我并没有真正理解为什么我们没有在每个java文件中都有主函数。为什么我们使用没有main的java文件?它满足什么目的?它有多有用。?
回答
并非每个文件都需要“主”功能。例如,您可能想要导入具有特定功能或类的文件。在这种情况下(一个没有“main”函数的java文件),java文件只是代表一大块代码,它被添加到你的程序中。所以它不需要单独的“主”功能,如果你已经有一个。
每个Java程序都必须有一个入口点,并且该入口点必须具有特定的签名。正如你所注意到的那样,它是public static void main(String[] args)
之后,作为入口点的类可以创建其他类的实例和/或调用它们的方法,或者调用静态的类级方法。这些类没有必要具有入口点,因为程序已经在Java虚拟机(JVM)中运行(执行代码)。
你会注意到,一个常见的错误新手(有时甚至经验丰富)程序员正在尝试运行一个程序,运行时环境无法找到入口点。例如,Eclipse: Java, no main method found(在这个例子中,问题在于OP有错误的方法签名)。运行时必须找到RUN的一些东西。
如果你的代码将通过一些其他的代码运行(例如,你正在开发一个图书馆或包含功能的API将被用来作为其他应用程序的部分),可能不适合你需要有一个主要方法。如果您使用IDE查看某些标准库的.jar文件,则应该发现其中很少有类具有主方法 - 这是因为它们不是要单独运行,而是要在上下文中运行另一个应用程序。
在java中,main()
是程序/应用程序的入口点。有时在一个应用程序中,我们只需要一个入口点来启动程序,并从这一点开始使用其他必要的代码。
但并不是所有的应用程序都需要一个方法 - 像容器启动应用程序/程序的web应用程序或java applet。
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
}
}
现在,你可能会问, “我不能只是写在主类中的这些方法?”。在某些情况下,答案可能是肯定的,但对于更复杂的代码,通常不会。在某些情况下,仅仅因为它使主类太多而无法跟踪而不切实际。跟踪保持其类在不同文件中的代码要容易得多。
Java程序的执行始终从Main方法开始。具有main方法的类是程序的入口点,并且从那里您可以获得剩余的所需功能。
如果你想要,你可以在每个java文件中使用main方法,它将作为你程序的多个入口点。
- 1. 我没有满足什么条件?
- 2. Regexp.last_match - 为什么它有用?
- 3. “::”的目的是什么?它为什么有用?
- 4. SQL,Postgres OID,它们是什么以及它们为什么有用?
- 5. 我们使用更多的指针,有没有什么优势?
- 6. 核心文件究竟是什么,它为什么有用?
- 7. 装配需要什么?为什么我们使用它们?
- 8. 为什么我们在C中有main的多个声明?
- 9. 为什么要使用websocket,使用它有什么好处?
- 10. 在c + +,迭代器,为什么有时我使用它,有时使用*它?
- 11. wxYield()返回什么?它与我为什么没有更新?
- 12. 当我们激活它时,为什么Word没有出现?
- 13. 什么是Thread.CurrentPrincipal,它有什么作用?
- 14. 什么是newproxy,它有什么用处?
- 15. 什么是Autoconf?为什么人们使用它?我应该使用它吗?
- 16. 为什么“while”循环在满足条件时没有结束?
- 17. 为什么在这个代码中有那么多“\”......它有什么用法..?
- 18. flvFPW1() - 它有什么作用?
- 19. DefaultMemberAttribute - 它有什么作用?
- 20. mapRectThatFits:它有什么作用?
- 21. 为什么我的RichTextBox没有激活它的事件vb.net
- 22. Java语法 - 它有什么作用?
- 23. 什么是java中的对象,它有什么作用
- 24. 它为什么有效?
- 25. 什么是“因子图”,它们对于什么有用?
- 26. 什么是JavaScript对象,它们什么时候有用?
- 27. hibernate中cascade和inverse有什么区别,它们用于什么?
- 28. 什么是HashMap和ArrayList,它们对于什么有用?
- 29. 什么是WCF代理,它们有什么用途?
- 30. 什么是HostProtectionAttribute,我们为什么使用它?
你认为'main'方法用于什么? – 2015-03-30 18:44:56
主要调用函数 – 2015-03-30 18:47:14
按定义*它是您的应用程序的入口点,随后将调用您的程序所需的所有其他方法。* – 2015-03-30 18:47:45