Java 当我没有';我没有主要的方法

Java 当我没有';我没有主要的方法,java,main,acm-java-libraries,Java,Main,Acm Java Libraries,我正在我的学院学习java课程,我们正在使用一个名为acm的库。但是当我们编写代码时,我们并不创建main方法。“public void run(){}”充当主方法。请解释一下 举个例子,我创建了一个程序 import acm.program.ConsoleProgram; import acm.util.RandomGenerator; public class Assignment3 extends ConsoleProgram { private static final lo

我正在我的学院学习java课程,我们正在使用一个名为acm的库。但是当我们编写代码时,我们并不创建main方法。“public void run(){}”充当主方法。请解释一下

举个例子,我创建了一个程序

import acm.program.ConsoleProgram;
import acm.util.RandomGenerator;

public class Assignment3 extends ConsoleProgram {

    private static final long serialVersionUID = 1L;
    private RandomGenerator rgen = RandomGenerator.getInstance();

    public void run() {
        final int QUESTION_AMOUNT = 5;

        println("Welcome to the Math Quiz! You have " + QUESTION_AMOUNT + " questions to answer! Good luck!");

        for (int i = 0; i < QUESTION_AMOUNT; i++) {
            askQuestion();
        }

        println("End of the quiz!");
    }

    public void askQuestion() {
        int num1, num2, kidanswer, realanswer;
        String operation = "";
        boolean x = rgen.nextBoolean();

        if (x == true) {
            operation = "+";
        } else {
            operation = "-";
        }

        if (operation == "-") {
            num1 = rgen.nextInt(0, 20);
            num2 = rgen.nextInt(0, num1);
        } else {
            num1 = rgen.nextInt(0, 20);
            num2 = rgen.nextInt(0, 20 - num1);
        }

        String question = ("What is " + num1 + " " + operation + " " + num2 + " = ");

        if (operation == "-") {
            realanswer = num1 - num2;
        } else {
            realanswer = num1 + num2;
        }

        kidanswer = readInt(question);

        int i = 0;
        while (i < 2) {
            if (kidanswer == realanswer) {
                println("That is correct! Well done!");
                break;
            } else {
                kidanswer = readInt("Wrong answer. Please try another answer: ");
                i++;
                if (i == 2) {
                    if (kidanswer == realanswer) {
                        println("That is correct! Well done!");
                    } else {
                        println("Sorry :( Out of tries! The answer was: " + realanswer);

                    }
                }
            }
        }
    }
}
导入acm.program.ConsoleProgram;
导入acm.util.RandomGenerator;
公共类分配3扩展控制台程序{
私有静态最终长serialVersionUID=1L;
private RandomGenerator rgen=RandomGenerator.getInstance();
公开募捐{
最后的整数问题金额=5;
println(“欢迎参加数学测验!你有“+问题数量+”的问题要回答!祝你好运!”);
对于(int i=0;i
有些东西必须提供一个主方法。在你的例子中,几乎可以肯定的是你的类扩展的ACM东西(
ConsoleProgram
),在某个时候,它将调用你的
运行
方法。

有些东西必须提供一个主方法。在你的例子中,几乎可以肯定的是ACM东西(
ConsoleProgram
),您的类将扩展它,并在某个时候调用您的
run
方法。

因为:

  • Assignment3扩展控制台程序
    • 因为:

      • Assignment3扩展控制台程序

      作为一个大旁注:作为一个大旁注:啊,我明白了,他们可能添加了这个,这样初学者就不会感到困惑了。谢谢!@S.Cakici讽刺的是,它产生了相反的效果,嗯?@宪兵哈哈是的:)我想知道什么是公开的无效运行()从课程开始。啊,我明白了,他们可能添加了这个,这样初学者就不会感到困惑了。谢谢!@S.Cakici讽刺的是,它产生了相反的效果,嗯?@宪兵哈哈,是的:)我想知道从课程开始,什么是公共无效运行()。