主要方法是否属于任何类?
答案 0 :(得分:18)
它确实属于一个类。看看任何hello-world实现,你会很清楚。
public static void main(String[] args) {
System.out.println("Hello World");
}
不会按原样编译。您需要在其周围放置class HelloWorld { ... }
,在这种情况下,您可能会说主要方法“属于”HelloWorld
类。
但是,由于静态,不属于任何特定对象。在使用面向对象语言时,您需要熟悉的类和对象之间存在重要差异。 Learning Java: Objects and Classes是一个很好的起点。
答案 1 :(得分:3)
是。每个方法或字段都必须属于一个类(或接口/枚举)。
答案 2 :(得分:2)
每行Java代码(导入/包除外)都存在于类中(或者是类/接口声明)。 main
也是如此。
答案 3 :(得分:2)
如果你的意思是它属于每个班级,那不是这样。它属于您定义它的类。
但是任何类都可以使用静态main
方法。
答案 4 :(得分:1)
在Java中,任何应用程序都必须在任何类中都有main
方法。它需要完全符合公式:
public static void main(String[] args)
查看更多in official lessons。
答案 5 :(得分:1)
java中的任何类都可以有一个public static void main(String [] args)。在类中声明的main函数(与任何其他静态方法一样)属于类定义,但不属于它的实例化实例。
如果要从类的集合构建JAR文件,则可以使用
指定JAR中的哪个类包含META-INF / Manifest.mf中的应用程序main方法Main-Class: fully qualified name of class (example: ie.mycode.MyApp)
运行命令时
java -jar [your jar file]
它将查看清单并开始执行Main-Class对象的main中指定的代码。
答案 6 :(得分:1)
如前所述,它是一个类但不是任何类
的一部分如果您的班级位于"unnammed" or "default" package,那么您的主要方法将不会是来自该初始班级的call any other Java classes及其主要方法()。
虽然它可以工作,但它将极大地限制您在main
方法中实际可以做的事情。
所以不要使用任何类(i; e;默认包中没有)
答案 7 :(得分:1)
它必须属于某个类,与任何方法一样,并且它必须位于您希望在编译后执行的类中。
程序只能通过执行具有main方法的类来开始(注意:这适用于大多数类型的Java应用程序。例如,Applet的工作方式不同)
答案 8 :(得分:1)
Java中的main方法属于一个类,但不属于Object。对象在运行时创建。因此,因为Java中的主main()
是应用程序的起点,所以无法从特定于实例的方法启动应用程序。这就是为什么static
关键字与main方法完全一致。实际上,当您想到'jvm'时,主要方法声明的所有部分都非常有意义,并描绘了主要方法的作用(启动应用程序):
public
,因为jvm必须可以访问此方法(不是由您编写的)。 static
,暗示这个方法可以在没有对象的情况下访问(因为它的表示永远不会改变),但是如果你再次像jvm一样思考逻辑很容易理解; “我没有任何对象来创建(实例化)对象,所以我需要一个静态方法来启动应用程序,因为根本没有任何逻辑方法来获取特定于实例的方法,因为我没有任何东西尚未创建对象“。void
此方法无法在逻辑上返回任何内容,因为还没有任何内容可以返回任何内容。这是应用程序的起点。main
我是主要的方法,因为没有我,你将没有申请。String[] args
向我发送您认为对我的创业有用的数据。答案 9 :(得分:0)
它不像主方法属于任何特定类,它属于我们定义main方法的类。它可以是任何类
答案 10 :(得分:0)
main
是一种常规方法。唯一的约定是Java可以使用这个(并且只有这个)方法来“启动”一个应用程序。如果将类传递给java.exe,它会尝试反映此方法(这就是方法签名绝对严格的原因!)并调用它(如果找到)。这实际上将“启动一个应用程序”(iaw:第一个线程)。
答案 11 :(得分:0)
当我们尝试运行JVM不知道路径的类时,会出现类似下面的错误/异常
Exception in thread main: classdefnotfound........
如果main属于我们尝试运行的类,那么为什么错误显示exception in thread main
这只会在线程主运行时发生
答案 12 :(得分:0)
我们经常使用接口来定义某些合同。与Runnable接口一样,它定义了将由执行器调用的run()方法。或者,这可以是一个抽象方法的类,概念上也是一样。
您还需要与Java应用程序的入口点签订此类合同。很自然,你在像Object这样的基础Java类中寻找它。
但是,main()方法不同。它的“契约”不是由接口定义,而是由规范定义,即Java语言规范。整个§12专用于执行,§12.1.4指定main()方法的“契约”。
另一方面,某些“合同”并非由接口或抽象方法定义,而是通过正式规范来定义。另一个例子是readObject()和writeObject()方法。