嗨,希望有人可以提供帮助。我正在做一个简短的Java课程,需要设置3个基本上彼此之间进行通信的类,但是我失败了。
您将从下面的代码中发现,我试图分割阅读用户输入的任务,并在不同的课程中执行所需的数学但是有些错误
有什么想法吗?谢谢你的兴趣。
这是简单的主类: -
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.start();
}
}
计算器类(或其中的一部分): -
public class Calculator {
private Reader reader;
public void Calculator(Reader reader) {
this.reader = reader;
System.out.println("Calculator set up.");
}
public void start() {
while (true) {
System.out.print("command: ");
String command = reader.readString(); // It fails here:
if (command.equals("end")) {
break;
}
if (command.equals("sum")) {
sum();
} else if (command.equals("difference")) {
difference();
} else if (command.equals("product")) {
product();
}
}
最后读者类: -
public class Reader {
private Scanner input;
public void Reader(Scanner input) {
this.input = input;
System.out.println("Reader set up.");
}
public String readString() {
return input.nextLine();
}
public int readInteger() {
return Integer.parseInt(input.nextLine());
}
}
答案 0 :(得分:1)
提供构造函数而不是mothod。
Calculator(Reader reader) {
this.reader = reader;
System.out.println("Calculator set up.");
}
之后你可以用@subhrajyoti建议改变你的主要方法。
答案 1 :(得分:1)
您使用的所有构造函数都存在问题。构造函数是 no 返回类型的特殊方法,因此在您的情况下,public void Calculator(Reader reader)
必须为public Calculator(Reader reader)
(删除void
)。这同样适用于其他构造函数。
一旦你这样做,你需要修改你如何实例化Calculator
类:
Calculator calculator = new Calculator();
应该成为:
Calculator calculator = new Calculator(new Reader(new Scanner(System.in)));
答案 2 :(得分:1)
除上述建议外, 1 GT;你的构造函数(Reader和Calculator)返回void。但是构造函数不能返回任何值。所以,删除void关键字。 你必须导入Scanner类(即java.util.scanner)。