我刚刚学会了如何使用类和构造函数,但Idk为什么我的代码没有运行。说非法开始,但我肯定是对的。我也查看了其他人的代码,它们与我的代码相同。有人可以看看有什么不对吗
public class Calculator{//basic calculator
public Calculator(){
public int add(int a, int b){
return a+b;
}
public int subtract(int a, int b){
return a-b;
}
public int multiply(int a, int b){
return a*b;
}
public int divide(int a, int b){
if(b==0){
System.out.println("Error! Dividing by zero is not allowed.");
return 0;
}else{
return a/b;
}
}
public int modulo(int a, int b){
if(b==0){
System.out.println("Error! Dividing by zero is not allowed.");
return 0;
}else{
return a%b;
}
}
}
public static void main(String[]args) {
Calculator myCalculator = new Calculator();
System.out.println(myCalculator.add(5, 7));
System.out.println(myCalculator.subtract(12, 34));
}
}
答案 0 :(得分:2)
删除该行无效的 public Calculator() {
。
编辑:实际上,第二眼看起来该行是一个尝试过的构造函数,但是您将整个类内容包装在括号{}
中。这应该有效:
public class Calculator {//basic calculator
public Calculator() {
}
public static void main(String[] args) {
Calculator myCalculator = new Calculator();
System.out.println(myCalculator.add(5, 7));
System.out.println(myCalculator.subtract(12, 34));
}
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a, int b) {
return a * b;
}
public int divide(int a, int b) {
if (b == 0) {
System.out.println("Error! Dividing by zero is not allowed.");
return 0;
} else {
return a / b;
}
}
public int modulo(int a, int b) {
if (b == 0) {
System.out.println("Error! Dividing by zero is not allowed.");
return 0;
} else {
return a % b;
}
}
}
编辑#2:正如Wombat指出的那样(我最不喜欢的Java功能之一,因为我花了多少时间进行故障排除)是a / b
是整数除法,并且(实际上)永远不会给你你需要的结果。此外,您的方法返回int
,这可能不是您的意图。因此,您的除法方法应使用double
:
public double divide(double a, double b) {
if (b == 0) {
System.out.println("Error! Dividing by zero is not allowed.");
return 0;
} else {
return a / b;
}
}