2014-12-19 97 views
-4

我有一个程序来寻找毕达哥拉斯三元组。在它里面,我有一个需要用来调用方法的对象。所述物体被破坏。错误是“方法Triples(int)未定义类型Triples”和“方法greatesCommonFactor()对于Triples类型未定义”请注意,并非Triples中的所有内容都会有用的东西atm。它尚未完全完成。类型方法未定义方法?

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"; 
    } 
} 
+1

你没有方法在名为'Triples'你'三倍'类。 –

+3

您将构造函数与方法混淆。他们不一样。 –

+1

您的半粘贴错误有一个拼写错误:_greates_。代码似乎没有这个错误,但这就是为什么你不会解释错误。 – keyser

回答

2

您尝试调用构造函数的方法,

更改这一部分:

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

Triples.test = new Triples(number); 
2

Triples不是一个方法 - 这是你的构造,这意味着它与new运营商调用:

Triples test = new Triples(number); 

greatestCommonFactor定义不正确。目前,它有三个int参数,而不是采取没有使用Triples'数据成员:

public int greatestCommonFactor() 
+0

你刚刚结束时输入了三元组,并在此之前输入了“greatCommonFactor” –

+0

@newbiedoodle - true和true,两者都固定。谢谢! – Mureinik