方法未定义类型方法?

时间:2014-12-19 15:33:39

标签: java methods

我有一个找到毕达哥拉斯三重奏的程序。在其中,我有一个需要用来调用方法的对象。所述物体被打破。错误是" Triples(int)方法未定义为Triples"和"方法greatesCommonFactor()未定义类型Triples"请注意,Triples中的所有内容都不是有用的东西。它还没有完全结束。

public class TriplesRunner
{
   public static void main(String args[])
   {
       int number;
       Scanner keyboard = new Scanner(System.in);
       System.out.print("Enter the natural number :: ");
       number=keyboard.nextInt();

       Triples test = new Triples();
       test.Triples(number);
       test.greatestCommonFactor(number);
       System.out.println(test.toString());
   }
}



public class Triples
{
   public int number;


    public Triples(int num)
    {
        setNum(number);
    }

    public void setNum(int num)
    {
        int a = 0;
        int b = 0;
        int c = 0;
    }

    public int greatestCommonFactor(int a, int b, int c)
    {
        int max = 0;
        for(a=1; a<=number-2; a++)
        {
            for(b=a+1; b<=number-1; b++)
            {
                for(c=b+1; c<=number; c++)
                {
                    if(a*a + b*b == c*c);
                    }
                }
            }
        return 1;
    }

    public String toString()
    {
        String output="";
        output+="a + b + c";
        return output+"\n";
    }
}

2 个答案:

答案 0 :(得分:2)

Triples不是一种方法 - 它是您的构造函数,这意味着它是使用new运算符调用的:

Triples test = new Triples(number);

greatestCommonFactor未正确定义。它目前需要三个int个参数,而不是不使用Triples&#39;数据成员:

public int greatestCommonFactor()

答案 1 :(得分:2)

你试图将构造函数称为方法,

更改此部分:

Triples test = new Triples();
test.Triples(number);

Triples.test = new Triples(number);