Java 多类程序

Java 多类程序,java,switch-statement,Java,Switch Statement,您好,我试图创建一个计算器,可以进行加法、减法、乘法和除法运算来挑战我自己,但我发现自己被困在开关部分:(我将指出开关消息中的错误,即“类型加法等中的方法加法等(字符串[])不适用于参数()我相信问题在于其他阶级的公共空虚 脚本: public class ComputronCalc { public static void main(String args[]) { int mode; mode = 1; Addition ADD =

您好,我试图创建一个计算器,可以进行加法、减法、乘法和除法运算来挑战我自己,但我发现自己被困在开关部分:(我将指出开关消息中的错误,即“类型加法等中的方法加法等(字符串[])不适用于参数()我相信问题在于其他阶级的公共空虚

脚本:

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

        int mode;
        mode = 1;

        Addition ADD = new Addition();
        Subtraction SUB = new Subtraction();
        Multiplication MUL = new Multiplication();
        Division DIV = new Division();

        System.out.println("Hello welcome to the Computron fully functional calculator, coded by Samuel Cole, designed by Dwight Schrute.");

        switch(mode) {
        case 1:
            ADD.Addition();<-----------addition is underlined in red
            break;
        case 2:
            SUB.Subtraction();<-------------same
            break;
        case 3:
            MUL.Multiplication();<---------------same
            break;
        case 4:
            DIV.Division();<----------------same
            break;
        default:
            System.out.println("You have not selected a mode, do so by editing the mode variable in the source.");
        }
    System.out.println("Thank you for choosing Computron.");
    }
}

注意:我正在使用eclipse,因此每个类都位于不同的页面上。

您的方法需要参数“args”,而您不使用它。请删除它。例如:

public void Addition(String Args[]) {
变成:

public void Addition() {

(顺便说一句,您的代码并不遵循Oracle)

虽然尖锐的问题是您需要更改方法签名以不包含任何参数或更改方法调用以发送参数,但我认为有一个更好的解决方案您应该简化

将操作类中的方法更改为构造函数:

public class Addition { 
    public Addition() {
    //...
    }
}
然后,您不需要为每次运行实例化所有操作,开关将变为:

switch(mode) {
case 1:
    Addition();
    break;
case 2:
    Subtraction();
    break;
case 3:
    Multiplication();
    break;
case 4:
    Division();
    break;
default:
    System.out.println("You have not selected a mode, do so by editing the mode variable in the source.");
}
在四个运算符类中没有函数的任何参数(在此程序中,字符串[]args参数)。您的程序应该在没有这些参数的情况下运行

public class Addition { 
    public Addition() {
    //...
    }
}
其他课程也同样如此

public class Subtraction { 
    public Subtraction() {
    //...
    }
}

public class Multiplication{ 
    public Multiplication() {
    //...
    }
}

public class Division { 
    public Division() {
    //...
    }
}
switch(mode) {
case 1:
    Addition();
    break;
case 2:
    Subtraction();
    break;
case 3:
    Multiplication();
    break;
case 4:
    Division();
    break;
default:
    System.out.println("You have not selected a mode, do so by editing the mode variable in the source.");
}
public class Addition { 
    public Addition() {
    //...
    }
}
public class Subtraction { 
    public Subtraction() {
    //...
    }
}

public class Multiplication{ 
    public Multiplication() {
    //...
    }
}

public class Division { 
    public Division() {
    //...
    }
}