首页 > 解决方案 > Java驱动程序类主方法创建驱动程序类的新实例

问题描述

我目前正在上一门关于使用 java 的设计模式的课程。我对为解释器模式提供的示例代码感到困惑。在驱动类中,main 方法创建了一个新的驱动类实例(为了使用构造函数)。但是,不会再次调用新实例中的 main 方法,从而创建新驱动程序类的无限循环吗?

import java.util.Scanner;

public class InterpreterDriver {

    // class variables
    public Conversion originatingContent = null;
    public Expression theExpression = null;

    public InterpreterDriver(Conversion content) {
        originatingContent = content;
    }

    public void interpret(String tString) {

        Scanner in = new Scanner(System.in);
        theExpression = new MapIntToCharacters(tString);
        theExpression.interpret(originatingContent);
    }

    public static void main(String[] args) {
        System.out.println("\n\nCODE INTERPRETER\n");
        System.out.print("Enter your code: ");
        Scanner in = new Scanner(System.in);
        String userInput = in.nextLine();
        System.out.println("Your code: " + userInput);
        Conversion conversion = new Conversion(userInput);
        InterpreterDriver userCode = new InterpreterDriver(conversion);
        userCode.interpret(userInput);
        System.out.println("\n\n");
    }
}

标签: java

解决方案


您可能会混淆构造函数的主要方法。对象实例化时不调用 main 方法。构造函数方法将在实例化时调用:

public InterpreterDriver(Conversion content) {
    originatingContent = content;
}

推荐阅读