从main运行布尔方法

时间:2013-12-14 12:28:30

标签: java boolean

我正在尝试使用main中的方法比较两个整数或双参数。 我不明白问题是什么。 参数bitterChocolate_amountmilkChocolate_amount 被定义为整数。

主:

boolean x = equals(bitterChocolate_amount,milkChocolate_amount)

方法:

public boolean equals (Fat other)
{
    if (this == other) {
        return true;
    }
    else {
        return false;
    }
}

错误消息是

  required: Object
  found: int,int
  reason: actual and formal argument lists differ in length
1 error

7 个答案:

答案 0 :(得分:2)

这个public boolean equals (Fat other)是你的方法只接受一个参数。但是boolean x = equals(bitterChocolate_amount,milkChocolate_amount)在这里你传递了两个论点。

这样做

boolean x = equals(bitterChocolate_amount,milkChocolate_amount);

方法:

public boolean equals (int bitterChocolate, int milkChocolate)
{
      if (bitterChocolate == milkChocolate)
           return true;
       else 
           return false;
}

答案 1 :(得分:0)

这个public boolean equals (Fat other)方法只接受一个参数,但是你在这里传递了2个参数equals(bitterChocolate_amount,milkChocolate_amount)同样如你所说比较2个整数那么方法将是这样的

public boolean equals (int other,int someother)

答案 2 :(得分:0)

问题是您的actualformal参数不匹配  你可以像这样编辑你的方法。

 boolean x = equals(bitterChocolate_amount,milkChocolate_amount)

方法:

public boolean equals (int value1,int value2)
{

      if (value1 == value2)
       {
           return true;
       }
       else 
       {
           return false;
       }
}

答案 3 :(得分:0)

实际上不需要“等于”方法。只需使用以下运算符:

if(int_a == int_b) { // returns true or false
    //my code...
}

看看:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

答案 4 :(得分:0)

如上所述,您尝试将两个参数(bitterChocolate_amount,milkChocolate_amount)传递给只有一个可用参数(Fat other)的方法。

更不用说参数类型(Fat)与您尝试传入的参数(int,int)不同。

我无法从您提供的代码范围中确切地说出来,但由于您在没有提及对象实例的情况下从主类调用它,您可能希望将该方法声明为静态太

这是面包和黄油的东西,我认为你应该独自一人自己弄清楚,因为你会学到更多的东西。如果您对长期投资感兴趣,我会推荐一本好书。 Head First书籍和Deitel和Deitel非常好。

答案 5 :(得分:0)

使用一个参数调用方法并使用两个参数。

答案 6 :(得分:0)

错误消息不言自明 必需:对象   found:int,int

您定义equals方法的方式,它需要一个类型为“Fat”的参数。 我假设您必须创建Fat类。

现在你使用两个整数参数调用这个方法,这就是为什么它说

必需:对象(类型为“Fat”)  并找到:int,int

现在让我们关注您的要求

  1. 如果您只想比较两个整数值,请将您的equals方法修改为下面定义的方法

    public boolean equals (int value1,int value2)
    {
    
    if (value1 == value2)
    {
       return true;
    }
    else 
    {
       return false;
    }
    }
    
  2. 在你的equals方法中,你使用了“this”,这意味着你应该在一个对象上调用它。 所以它应该是这样的

    Fat f = new Fat(3);
    Fat g = new Fat(4);
    f.equals(g)
    

    但是在这种情况下,当您比较对象时,(这= =其他)将不起作用,因为两个对象都不同。 ==比较对象本身而不是它们存储的值。所以我不确定你想要达到什么目的。

  3. 如果你澄清了你的要求,最好能得到正确答案。