【问题标题】:Why do some classes require main methods and others do not?为什么有些类需要主要方法而其他类不需要?
【发布时间】:2014-01-14 05:37:09
【问题描述】:

我目前正在参加一个在线 Java 课程,我的导师让我相信所有 Java 课程都必须有一个 main 方法

即。

public class
{
public static void main(String[] args)
}

但是,我们刚刚到达了一个关于交叉引用其他文件中的类的单元,但情况并非如此。

例如

public class Pie
{

        // declare variables to be called in separate file
        String type;
        int diameter;
        float radius;

}

然后可以以如下方式引用饼图:

Pie newPie = new Pie();

System.out.println("What type of pie will you be eating today?");
        newPie.type = in.readLine();
        System.out.println("Ah. " + newPie.type + ". Excellent choice.\n");

这很好用。然而,为什么这个功能正确地隐藏了我的解释。谁能解释一下?

【问题讨论】:

  • 所有 Java 应用程序必须包含至少一个带有 main 方法的类;但可能包含其他没有主要方法的类。
  • 要么你误解了你的导师,要么他不知道他在说什么。我的钱是前者。

标签: java class oop


【解决方案1】:

每个 Java 程序(反过来,由一个或多个 Java 类构建)都需要一个 Main 方法。这种特殊方法的目的是作为程序的入口点,以便您的程序可以执行。更多信息可以在this页面找到。

在您的Pie 示例中,当您运行应用程序时,会首先调用 main 方法。一旦它被调用,它将使用Pie 模板(类)等创建一个新的Object,命名为newPie

作为额外信息,如果您使用的是 IDE,如果您在 Pie 类中添加具有给定签名的 main 方法:public static void main(String[] args),下次运行程序时 IDE 会询问您选择您的入口点,因为它现在将找到两个入口点。一旦您做出选择,IDE 将进行必要的配置,以便记录您的应用程序的入口点。

【讨论】:

    【解决方案2】:
    my instructor has led me to believe that all Java classes must have a main method
    

    这是错误的。并非所有类都必须具有main 方法。 main 方法用作 java 应用程序的入口点。因此,一旦您使用单个类的 main 方法输入了 java 代码,您就可以在那里调用其他类的代码形式。

    更好的说法是:

    在 Java 编程语言中,每个应用程序都必须包含一个 main 方法,作为应用程序的入口。

    在此处了解有关 main 方法的更多信息:

    http://docs.oracle.com/javase/tutorial/getStarted/application/index.html?utm_source=twitterfeed&utm_medium=twitter#MAIN

    【讨论】:

      【解决方案3】:

      Java 类和 Java 程序是两个不同的东西。

      一个Java程序包含一个或多个Java类,每个类可以包含方法和变量。 main 方法是一种特殊的静态方法,Java 将其识别为程序的入口点(您可以将 main 方法视为程序的蓝图或一组方向,而类是像 Pie 这样的对象的蓝图) .

      所以回答你的问题,有一个误解。 Java程序需要main方法,Java类不一定需要main方法。

      【讨论】:

        【解决方案4】:

        没有必要在每个java类中都有main方法main方法是java应用程序的入口点。可以有一个class 没有main 方法。

        【讨论】:

          【解决方案5】:

          他们是不同的,

          通常您在应用中创建类来存储一些数据

          但还有另一个类是您的主类,它将启动您的应用程序,您的应用程序启动将在那里并调用另一个类

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-05-14
            • 1970-01-01
            • 1970-01-01
            • 2014-03-19
            • 2013-01-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多