我遇到了这个构造函数的问题并且遇到了编译器错误

时间:2014-04-22 02:13:46

标签: java constructor

这是一个非常简单的程序:

为calculate类创建一个方法,该方法将接收两个数字并将它们加在一起(为此使用类变量!)。对于额外的挑战,为此创建多个类方法:一个类方法接受数字,另一个类方法进行计算。 通过显示保存计算结果的类变量的内容,创建一种显示计算结果的方法。 创建一个main方法,该方法将声明calculate类的对象并使用该类的所有方法。

这是我想出来的但它不会让我将任何值传递给计算器类,因为我没有构造函数但我在getNum中有构造函数方法。请帮忙

public class MainCalc {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) 
{
   calculator calcOne = new calculator();
   System.out.println("calcOne equals: " + calcOne.calculate());
}

class calculator
{
   private int num1;
   private int num2;
   public int answer;

   public void getNum(int i, int j) 
   {
   num1 = i;
   num2 = j;
   }

public int calculate()
{
 answer = num1 + num2;

 return answer;
}
}

}

3 个答案:

答案 0 :(得分:2)

你想要

public void getNum(int i, int j) 
   {

public calculator(int i, int j) 
{

构造函数没有返回类型,否则本质上是一个与类同名的函数,以保持简单。有关详细信息,请查看oracle docs

使用2个值构建计算器。

new calculator(1,2);

答案 1 :(得分:0)

更改

class calculator

static class calculator

因为您在static方法的main上下文中引用了它。

答案 2 :(得分:0)

尝试这样的事情:

public class MainCalc {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Calculator calcOne = new Calculator();
    System.out.println("calcOne equals: " + calcOne.addTwoNumbers(10, 25));
}

static class Calculator {
    private int num1;
    private int num2;
    private int answer;

    public int addTwoNumbers(int i, int j) {
        num1 = i;
        num2 = j;
        calculate(num1, num2);
        return answer;
    }

    private void calculate(int i, int j) {
        answer = i + j;

    }
}
}

addTwoNumbers方法接受两个整数作为参数,设置类变量num1& num2等于他们。然后调用计算方法,该方法将这两个变量作为输入,执行计算和计算。将答案变量设置为等于它。然后addTwoNumbers方法返回答案。这应该满足您的要求,即单独的方法执行计算。