主要方法是否属于任何类?

时间:2010-05-27 11:15:58

标签: java

主要方法是否属于任何类?

13 个答案:

答案 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()方法。